7

我正在将我的 android 项目迁移到 gradle 构建系统,但我无法从我的 Integration Test Android 项目中导入我的 Android 项目。

我正在使用带有多个 android-libraries 的多项目配置,它运行良好,但是我在使用多项目设置设置我的测试项目时遇到了问题。由于外部原因,我需要继续使用这种结构。

MyProject/
 | settings.gradle
 + MyApp/
    | build.gradle
    | src
    | res
    | libs
 + Instrumentation-Tests/
    | build.gradle
    | src
    | res
    | libs

我当前的配置文件如下所示:

设置.gradle:

include ':MyApp', 'Instrumentation-Tests'

MyAppp/build.gradle:

apply plugin: 'android'

repositories {
    mavenCentral()
}

dependencies {
    compile files('.....jar')
    compile project('....')
    compile 'com.android.support:support-v4:13.0.+'
}

android {
    compileSdkVersion 17
    buildToolsVersion "17.0.0"

    defaultConfig {
        minSdkVersion 11
        targetSdkVersion 16
    }

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

    }
}

最后是我的Instrumentation-Tests/build.gradle

apply plugin: 'android'

repositories {
    mavenCentral()
}

dependencies {
    compile project(':MyApp')
    compile files('.....jar')
    compile 'com.android.support:support-v4:13.0.+'
}

android {
    compileSdkVersion 17
    buildToolsVersion "17.0.0"

    defaultConfig {
        minSdkVersion 11
        targetSdkVersion 16
    }

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

当我运行gradle compileDebug项目时MyApp编译正确(及其所有模块),但Instrumentation-Tests编译失败,因为它找不到MyApp.

我已经阅读了文档和很多帖子,但我无法让它工作,我也尝试过使用:

compile(project(':MyApp')) { transitive = true }

声明依赖时。

有没有人有同样的问题? 我想将MyApp项目依赖项的输出包含到Instrumentation-Tests编译的类路径中,但我不知道是否可以使用 androidgradle插件。

4

1 回答 1

1

这不起作用(截至目前),因为您只能将库项目指定为依赖项。

因此,对于compile project(':MyApp') MyApp的情况,应该是一个 Android 库项目,apply plugin: 'android-library'其中包含 build.gradle。这当然没有意义。

要拥有一个单独的测试项目,您需要其他东西(我正在自己研究)。

编辑:放弃使用 Gradle 进行测试,使用 Ant。

于 2013-09-15T10:55:00.470 回答