我有一个Android应用程序,下面有两个库层。每个库都有自己的测试代码。我想上层库的测试代码扩展下层库的测试代码,但我无法弄清楚如何让Gradle找到下层库的测试代码(它只找到生产代码)。
我的文件结构如下:
myproject/
+ myapp/
+ src/
+ main/
+ java
+ com/myapp
+ lib1/
+ src/
+ main/
+ java
+ com/myapp/lib1
+ androidTest
+ java
+ com/myapp/lib1/test
+ lib2/
+ src/
+ main/
+ java
+ com/myapp/lib2
+ androidTest
+ java
+ com/myapp/lib2/test
该应用的gradle文件如下所示:
apply plugin: 'com.android.application'
android { ... }
dependencies {
compile project(':lib2')
}
lib2的gradle文件如下所示:
apply plugin: 'com.android.library'
android { ... }
dependencies {
compile project(':lib1')
}
lib1的gradle文件如下所示:
apply plugin: 'com.android.library'
android { ... }
当我运行“gradle connectedCheck”时,我得到了这个:
...
:lib2:generateDebugTestSources UP-TO-DATE
:lib2:compileDebugTestJava
myproject/lib2/src/androidTest/java/com/myapp/lib2/test/SubClass.java:10: error: package com.myapp.lib1.test does not exist
import com.myapp.lib1.test.BaseClass;
我尝试将各种androidTestCompile行添加到lib2的gradle文件的依赖项部分,但它们都没有帮助。
有人知道如何使这项工作?
编辑: 抱歉,我没有提到myproject文件夹中的settings.gradle如下所示:
include ':lib1'
include ':lib2'
include ':myapp'
答案 0 :(得分:1)
问题是你的gradle不知道myapp,lib1和lib2模块的连接。
尝试在使用另一个模块的模块中添加一些settings.gradle。对于您的结构,我建议在root中创建其他gradle文件:
例如在myproject /
中settings.gradle:
rootProject.name = 'myproject'
include 'myapp'
include 'lib1'
include 'lib2'
然后为所有模块编写gradle.build,您可以在其中阐明所有项目的类型,例如ear等。
您也可以单独连接模块。