我在这篇文章中提到了相同的问题AndroidTest Manifest permission not detected

这个帖子AndroidManifest in androidTest directory being ignored

->如果将测试 list 放在androidTestdebugAndroidTestandroidTestDebug中,则它不会被拾取并合并。

将AndroidManifest.xml放入debug文件夹的答案是正确的;似乎确实有效。 (将测试 list 放入src/debug
我想知道的是为什么您不能将其放在androidTest目录中?我在试图弄清楚这一点时所阅读的所有文档听起来都应该可以,如果不能,那么我想这似乎是 list 合并中的一些错误。

为了它的值(value),我正在使用Android Studio

最佳答案

那是正确的,并且在令人困惑的文档中完全同意您的看法。 AndroidManifest.xml源集下的androidTest*将打包为用于在实际应用APK上进行测试的工具APK。如果使用命令debug编译应用模块后,打开androidTestbuild/outputs/apk/gradlew assembleDebugAndroidTest生成的APK(假设您尚未更改testBuildType中的build.gradle,更多信息here),您会发现在AndroidManifest.xml配置下添加了任何androidTest配置androidTest将在debug APK中,而不在您的AndroidManifest.xml应用APK中。

就像您所说的那样,如果您需要测试特定的配置(例如额外的权限),则必须将它们放置在debug源集下的main中,而不是ojit_code,因此它们只能用于测试您的应用,而不能用于您的发布版本。当然,您始终可以通过在编译后打开生成的APK进行仔细检查,以确保该配置适用于每个构建变体。

10-08 18:02