将Gradle与现有的Android项目一起使用

时间:2013-06-26 15:08:47

标签: android gradle android-studio android-build

我有一个现有的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?

非常感谢任何帮助。

谢谢!

2 个答案:

答案 0 :(得分:7)

只需在计算机上安装gradle并确保所有路径都正常。

之后在Project文件夹中创建“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 documentation,这里没有特定的android。

答案 1 :(得分:6)

  

此方案中推荐的方法是什么?我应该改变我的   项目结构?或者是否可以使用。配置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') 
}