使用gradle构建系统创建测试Android apk

使用gradle构建系统创建测试Android apk,android,gradle,android-studio,robotium,build.gradle,Android,Gradle,Android Studio,Robotium,Build.gradle,我正在将我的android项目迁移到gradle build system,无法从集成测试android项目导入我的android项目 我使用多项目配置和几个android库,它工作得很好,但是我在设置多项目设置的测试项目时遇到了问题。出于外部原因,我需要继续使用此结构 MyProject/ | settings.gradle + MyApp/ | build.gradle | src | res | libs + Instrumentation-Tests

我正在将我的android项目迁移到gradle build system,无法从集成测试android项目导入我的android项目

我使用多项目配置和几个android库,它工作得很好,但是我在设置多项目设置的测试项目时遇到了问题。出于外部原因,我需要继续使用此结构

MyProject/
 | settings.gradle
 + MyApp/
    | build.gradle
    | src
    | res
    | libs
 + Instrumentation-Tests/
    | build.gradle
    | src
    | res
    | libs
我当前的配置文件如下所示:

settings.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']
        }

    }
}
最后是我的
仪器测试/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']
        }
    }
}
当我运行
gradlecompiledebug
时,项目
MyApp
被正确编译(及其所有模块),但是
指令插入测试
编译失败,因为它找不到
MyApp
中定义的android类

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

compile(project(':MyApp')) { transitive = true }
当声明依赖项时

有人有过同样的问题吗? 我想将
MyApp
项目依赖项的输出包含到
插装测试编译的类路径中,但我不知道使用android
gradle
插件是否可行。

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

因此,对于
compileproject(“:MyApp”)
MyApp应该是一个Android库项目,其build.gradle中有
apply插件:“Android库”
。这当然没有道理

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


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

你读过这样的东西吗:还有这个:?我想知道您是否遵循了这些说明,但更改了源集的位置,以确定它是否适用于您当前的设置。您可能需要指定相对于项目根目录的测试源目录。我最终将所有测试都移动到gradle结构中,我也将所有检测测试(单元测试和功能测试)移动到instrumentationTest文件夹中,并且一切正常!最后我把所有的测试都移到了gradle结构中,我也把所有的仪器测试(单元测试和功能测试)移到了instrumentationTest文件夹中,一切都正常!