是否可以将AndroidManifest添加到具有Gradle(而不是产品风格)的特定构建类型?
我们正在设置一些在构建服务器上运行的活动检测测试。由于这要求设备处于唤醒状态,我发现的选项似乎是:是否可以将AndroidManifest添加到具有Gradle(而不是产品风格)的特定构建类型?,android,android-manifest,android-gradle-plugin,Android,Android Manifest,Android Gradle Plugin,我们正在设置一些在构建服务器上运行的活动检测测试。由于这要求设备处于唤醒状态,我发现的选项似乎是: 将设备设置为“保持清醒”并禁用屏幕锁定 在测试用例中以编程方式禁用Keyguard(如上所述) 选项1看起来不太好,因为它会浪费电池,最终会导致设备显示器老化。选项2似乎更可取,但我宁愿严格保留DISABLE_KEYGUARD权限来调试构建(而不是发布版),这样所有的产品风格都是可测试的,但发布版永远不会请求该权限 我知道我们可以使用sourceset添加要合并的清单: android.sourc
sourceset
添加要合并的清单:
android.sourceSets.development {
manifest.srcFile 'development/AndroidManifest.xml'
}
但我还没有找到一种仅针对特定构建类型的等效方法——类似这样的方法(这是无效的):
有没有一个官方的方法可以做到这一点?还有其他建议吗?谢谢 对于构建类型,您可以使用与flavors相同的方法获得源集。这应该起作用:
android.sourceSets.debug {
manifest.srcFile 'debug/AndroidManifest.xml'
}
话虽如此,目录结构意味着您不需要手动配置源集,除非您使用的是非默认布局。在标准结构中,您可以执行此操作,而不必在生成文件中配置源集:
module_directory
+--src
+--main
+--AndroidManifest.xml
+--java
+--res
+--flavor1
+--AndroidManifest.xml
+--java
+--res
+--debug
+--AndroidManifest.xml
+--java
+--res
+--release
+--AndroidManifest.xml
+--java
+--res
等等。Brilliant,我不知道你可以为构建类型这样做。谢谢斯科特!
module_directory
+--src
+--main
+--AndroidManifest.xml
+--java
+--res
+--flavor1
+--AndroidManifest.xml
+--java
+--res
+--debug
+--AndroidManifest.xml
+--java
+--res
+--release
+--AndroidManifest.xml
+--java
+--res