我的单元测试需要一些大型资源才能测试解析复杂的媒体文件。我注意到Gradle在调试和发布版本中都包含整个androidTest / assets文件夹。这导致不必要的APK文件大小膨胀。
我尝试在build.gradle中为媒体文件设置android {aaptOptions {ignoreAssetsPattern"!*。ext"}}'扩展名,但androidTest / assets文件夹似乎不符合这些资产排除选项。我设法让构建使用android {packagingOption {exclude' AndroidTest / assets / filename.ext'其中filename.ext是没有通配符支持的完整文件名。这排除了所有构建中的资产,即使在测试时也是如此。
我希望我能找到一些Gradle方法来排除发布版本中的文件夹,但是资产可能不应该出现在构建中,除非我打算专门用于运行检测测试。这里有什么好的选择吗?
我简直无法相信默认行为是在所有构建中始终包含androidTest / assets。这应该被视为一个错误并被报告吗?
答案 0 :(得分:2)
在我为我的库项目编写测试之后,似乎另一个开发人员明确地向我的build.gradle文件添加了一个指令。他改变了默认位置以寻找仪器测试。因此,Gradle工具将androidTest / assets文件夹视为普通资产文件夹,并将文件添加到每个APK。
这是违规行:
instrumentTest.setRoot('tests')
感谢您的帮助!