Использование Gradle с существующим проектом Android

У меня есть существующий проект Android со следующей структурой:

- ProjectName
-- AndroidManifest.xml
-- local.properties
-- project.properties

-- assets
-- libs    (containing all jars)
-- modules (containing all library projects my project depends on)
-- res

-- src
---- com/namespace/projectname (all my classes including main activity are here)

Я не использовал какую-либо конкретную систему сборки для создания своего проекта, кроме той, которая предоставляется по умолчанию в Android Studio IDE (хотя проект изначально был создан с помощью IntelliJ CE.

Я хотел бы использовать Gradle с плагином для Android и немного поработать над процессом сборки. Я пробовал несколько конфигураций, чтобы добиться этого, и каждый раз мне не удавалось завершить успешную сборку.

Каков рекомендуемый подход в этом сценарии? я должен изменить структуру моего проекта? или можно настроить gradle, используя существующую структуру?

Любая помощь будет принята с благодарностью.

Спасибо!


person woot    schedule 26.06.2013    source источник


Ответы (2)


Каков рекомендуемый подход в этом сценарии? я должен изменить структуру моего проекта? или можно настроить gradle, используя существующую структуру?

Вполне возможно настроить Gradle, используя существующую структуру.

Вам нужно добавить build.gradle в каждый проект библиотеки. Вам также необходимо добавить файлы build.gradle и settings.gradle в корневую папку проекта.

Должно быть так:

  ProjectName
    build.gradle     <<<<<<
    settings.gradle  <<<<<<
    AndroidManifest.xml
    local.properties
    project.properties
    assets
    res
    src
    libs    
    modules 
       module1
          build.gradle  <<<<<<
       module2
          build.gradle  <<<<<<
       module3
          build.gradle  <<<<<<

В settings.gradle вам нужно включить все папки проектов, если ваш основной проект был в подпапке, он также должен быть включен, что не так.

settings.gradle должен выглядеть так:

include ':modules:module1', ':modules:module2', ':modules:module2'

build.gradle основного проекта должен иметь:

dependencies {
        compile fileTree(dir: 'libs', include: '*.jar')
        compile project(':modules:module1') 
        compile project(':modules:module2') 
        compile project(':modules:module3') 
}
person rafaello    schedule 26.06.2013
comment
проголосуйте против неполноты, пожалуйста, добавьте, как создать build.gradle. - person fullmoon; 07.08.2016

Просто установите Gradle на свой компьютер и убедитесь, что все пути в порядке.

После этого создайте файл «build.gradle» в папке вашего проекта.

Вот базовый пример, с которого вы можете начать:

buildscript {
    repositories {
        mavenCentral()
    }

    dependencies {
        classpath 'com.android.tools.build:gradle:0.4.+'
    }
}

apply plugin: 'android'

dependencies {
    compile fileTree(dir: 'libs', include: '*.jar')
    compile project(':yourModuleName') 
}

android {
    compileSdkVersion 17
    buildToolsVersion "17.0.0"

    defaultConfig {
        minSdkVersion 10
        targetSdkVersion 16
    }

    sourceSets {
        main {
            manifest.srcFile 'AndroidManifest.xml'
            java.srcDirs = ['src']
            res.srcDirs = ['res']
            assets.srcDirs = ['assets']
        }

        instrumentTest.setRoot('yourTestRoot')
    }
}

Чтобы обращаться к вашим модулям, как я сделал в блоке зависимостей, вам нужно создать файл settings.gradle и ссылаться на свои модули как на проект. Поскольку я предполагаю, что у них также есть собственный макет, вам также нужно создать файлы build.gradle в папке модуля.

Для настройки settings.gradle вы должны посетить gradle документацию, ничего для Android конкретный здесь.

person rivare    schedule 26.06.2013
comment
Разве файл не должен называться build.gradle вместо gradle.build? - person amey91; 16.12.2014