我将我的Android项目迁移到gradle构建系统,我无法从我的Integration Test Android项目导入我的Android项目。使用gradle构建系统创建测试Android apk
我使用多个项目配置与几个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']
}
}
}
最后我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
正确编译(和它的所有模块),而是因为它无法找到MyApp
定义了Android类Instrumentation-Tests
编译失败。
compile(project(':MyApp')) { transitive = true }
声明的依赖时:
我读过的文档和很多帖子,但我不能使它工作,我也尝试使用。
有没有人有同样的问题? 我想将MyApp
项目依赖项的输出包含到Instrumentation-Tests
编译的类路径中,但我不知道是否可以使用android gradle
插件。
你读过这样的东西:http://stackoverflow.com/questions/16586409/how-can-i-create-tests-in-android-studio和这个:http://tools.android。 COM /科技的文档/新构建系统/用户指南#TOC-测试?我想知道你是否遵循了这些说明,但是如果它能适用于你当前的设置,就改变了源代码集的位置。您可能需要指定与项目根目录相关的测试源目录。 – jDutton
我最终将所有移动到gradle结构,我也将我的所有仪器测试(单位和功能)移动到instrumentationTest文件夹内,并且一切正常! – David