我想在不同的构建类型中自定义AndroidManifest.例如,在调试模式下,我只想要导出一个Activity.
假设主要清单:
/main/AndroidManifest.xml
调试清单:
/debug/AndroidManifest.xml
示例清单(与调试相同):
/example/AndroidManifest.xml
在调试清单中,我得到了 Duplicate registration for activity com.example.MainActivity
这就是我创建示例构建类型的原因.
/build.gradle android { buildTypes { example.initWith(buildTypes.debug) } }
但它也行不通.
[AndroidManifest.xml:17, AndroidManifest.xml:4] Trying to merge incompatible /manifest/application/activity[@name=com.example.MainActivity] element:-- --(end reached)++
我想知道这是一个bug,缺少功能(将来会实现)还是我做错了什么?
我知道我可以在发布和调试中提供不同的清单(没有一个/main
),但我不认为这是一个很好的解决方案.
编辑:
到目前为止的解决方案是在资源中定义bool并在主清单中使用它.在调试资源中,bool将true
在发布时false
.这个解决方案似乎比重复的清单要好得多,但问题仍然存在.