我在这篇文章中提到了相同的问题AndroidTest Manifest permission not detected
这个帖子AndroidManifest in androidTest directory being ignored
->如果将测试 list 放在androidTest
,debugAndroidTest
和androidTestDebug
中,则它不会被拾取并合并。
将AndroidManifest.xml放入debug
文件夹的答案是正确的;似乎确实有效。 (将测试 list 放入src/debug
我想知道的是为什么您不能将其放在androidTest
目录中?我在试图弄清楚这一点时所阅读的所有文档听起来都应该可以,如果不能,那么我想这似乎是 list 合并中的一些错误。
为了它的值(value),我正在使用Android Studio
最佳答案
那是正确的,并且在令人困惑的文档中完全同意您的看法。 AndroidManifest.xml
源集下的androidTest*
将打包为用于在实际应用APK上进行测试的工具APK。如果使用命令debug
编译应用模块后,打开androidTest
下build/outputs/apk/
和gradlew assembleDebugAndroidTest
生成的APK(假设您尚未更改testBuildType
中的build.gradle
,更多信息here),您会发现在AndroidManifest.xml
配置下添加了任何androidTest
配置androidTest
将在debug
APK中,而不在您的AndroidManifest.xml
应用APK中。
就像您所说的那样,如果您需要测试特定的配置(例如额外的权限),则必须将它们放置在debug
源集下的main
中,而不是ojit_code,因此它们只能用于测试您的应用,而不能用于您的发布版本。当然,您始终可以通过在编译后打开生成的APK进行仔细检查,以确保该配置适用于每个构建变体。