Android Gradle 1.1模块单元测试依赖于同一项目中的另一个Android模块
我有一个Android Gradle 1.1项目,其中有几个模块对其他模块有一些依赖性Android Gradle 1.1模块单元测试依赖于同一项目中的另一个Android模块,android,android-studio,gradle,android-gradle-plugin,robolectric,Android,Android Studio,Gradle,Android Gradle Plugin,Robolectric,我有一个Android Gradle 1.1项目,其中有几个模块对其他模块有一些依赖性 Project ├ Module2 │ ├ src/main: imports classes from Module1 │ └ src/test: imports classes from Module1, tests Module2/src/main └ Module1 ├ src/main: implements classes needed by Module2/src/main & Mo
Project
├ Module2
│ ├ src/main: imports classes from Module1
│ └ src/test: imports classes from Module1, tests Module2/src/main
└ Module1
├ src/main: implements classes needed by Module2/src/main & Module2/src/test
└ src/test: tests Module1/src/main
我的模块本身编译得很好。我的问题与测试模块有关。 (仅供参考:我使用的是机器人分子) 我见过几个与Android构建和测试依赖性相关的“类似”问题,但我发现的问题中似乎没有一个是问我在寻找什么:
Pv秘诀是在您的AndroidManifest.xml旁边有
project.properties
和test project.properties
文件
在test project.properties
插入所有分解的aar资源路径(例如android.library.reference.3=../../build/intermediates/分解的aar/AndroidStudioAndRobolectric/core/unspecified
)
我在上对此进行了详细解释,在上可以找到一个现成的示例。如果您的测试模块依赖于纯Java/非Android代码,另一种方法是提取一个新的Java库模块(构建.jar而不是.aar的模块)并依赖于此。在这种情况下,单元测试可以正常运行
(可能对原始海报没有太大帮助,因为他们使用的是Robolectric,但仍然)您能在每个模块中提供“build.gradle”文件吗?谢谢,太棒了!我要试试看!我正在尝试您的解决方案,但在org.roblectric.AndroidManifest$MetaData.init(AndroidManifest.java:736)上得到了一个奇怪的java.lang.NullPointerException。我在你的博客文章中发表了一条评论。谢谢@nenick,你的解决方案基本上是可行的,但是清单中有大量与元数据相关的机器人分子错误,所以我尝试简化我正在尝试的工作。不管怎样,我都会相信你的妙计!:)