Tia*_*ago 9 android manifest include repeat android-manifest
我的项目有3个Manifest文件:
flavour/AndroidManifest.xml
flavourDebug/AndroidManifest.xml
flavourRelease/AndroidManifest.xml
Run Code Online (Sandbox Code Playgroud)
这是flavor/AndroidManifest.xml:
<manifest
xmlns:android="http://schemas.android.com/apk/res/android">
<uses-permission android:name="android.permission.READ_CONTACTS" />
</manifest>
Run Code Online (Sandbox Code Playgroud)
这是flavourDebug/AndroidManifest.xml:
<manifest
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools">
<application android:name="com.domain.android.MyApplication"
android:allowBackup="false"
android:label="@string/app_name"
android:logo="@drawable/ic_logo"
android:theme="@style/Theme.CustomActionBarStyle"
android:networkSecurityConfig="@xml/network_security_config"
tools:replace="theme">
// Activity definitions in here
</application>
</manifest>
Run Code Online (Sandbox Code Playgroud)
这是flavourRelease/AndroidManifest.xml:
<manifest
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools">
<application android:name="com.domain.android.MyApplication"
android:allowBackup="false"
android:label="@string/app_name"
android:logo="@drawable/ic_logo"
android:theme="@style/Theme.CustomActionBarStyle"
tools:replace="theme">
// Activity definitions in here (these are the EXACT SAME as the ones in flavourDebug/AndroidManifest.xml)
</application>
</manifest>
Run Code Online (Sandbox Code Playgroud)
如您所见,Debug和Release Manifests之间的唯一区别是Release 1缺失 android:networkSecurityConfig
此外,该// Activity definitions in here部分完全相同.我想要的是避免重复活动.每次我们必须在Activity定义中更改某些内容(或添加一个新的Activity)时,我们必须在2个Manifest文件(Debug和Release)中执行此操作.
我想把所有东西放在AndroidManifest.xml主文件中.问题是我无法android:networkSecurityConfig="@xml/network_security_config" 仅添加到调试版本.
在Android布局中,该问题通过<include>标记解决.不幸的是,Manifest中没有.
我怎样才能解决这个重复问题?
你绝对可以将公共部分flavour/AndroidManifest.xml和addnal属性放入flavourDebug/AndroidManifest.xml(以及src/flavourDebug/res/xmldir中引用的xml文件):
<application
android:networkSecurityConfig="@xml/network_security_config" />
Run Code Online (Sandbox Code Playgroud)
在添加属性时,它应该开箱即用,而不需要调整合并规则(这tools:node="merge"是大多数元素的默认行为).
使用Android Studio 3.1(可能还有早期版本),您可以在编辑器的Merged清单选项卡中查看最终清单以及每个属性或元素的来源.
| 归档时间: |
|
| 查看次数: |
441 次 |
| 最近记录: |