我正在将我的android项目迁移到gradle构建系统,我无法从我的Integration Test Android项目中导入我的Android项目。
我正在使用具有多个android-libraries的多项目配置,并且它工作得很好,但是我在使用多项目设置设置我的测试项目时遇到了问题。出于外部原因,我需要继续使用这种结构。
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
被正确编译(及其所有模块),但Instrumentation-Tests
编译失败,因为它无法找到{{1}中定义的android类}。
我已阅读文档和大量帖子,但我无法使其正常工作,我也尝试过使用:
MyApp
声明依赖时。
有人有同样的问题吗?
我想将compile(project(':MyApp')) { transitive = true }
项目依赖项的输出包含到MyApp
编译的类路径中,但我不知道是否可以使用android Instrumentation-Tests
插件。
答案 0 :(得分:1)
这不起作用(截至目前),因为您只能将库项目指定为依赖项。
对于compile project(':MyApp')
的情况,MyApp 应该是一个Android库项目,其中包含apply plugin: 'android-library'
build.gradle 。这当然没有意义。
要有一个单独的测试项目,你需要其他东西(我正在研究自己)。
编辑:考虑使用Gradle进行测试,请使用Ant。