Android 清单合并删除属性
Android manifest merge dropping attribute
我正在使用 groovy 生成部分清单,其中包含来自我的构建配置文件的应用程序链接的意图过滤器声明。在 apk 中找到的合并清单看起来符合预期,但有一个问题:尽管在 build.gradle 中设置了属性 android:debuggable
,但它正在被删除。如果我删除部分清单并重建 apk,android:debuggable="true"
将按预期设置。
我的主要清单如下:
<manifest package="com.app.myapp"
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:installLocation="auto">
<application
android:name="MyApp"
tools:replace="android:theme, android:label, android:allowBackup">
</application>
</manifest>
我生成的部分清单如下所示:
<?xml version="1.0" encoding="utf-8"?>
<manifest package="com.app.myapp" xmlns:android="http://schemas.android.com/apk/res/android">
<application
android:name="MyApp">
<activity android:name=".activity.MyActivity">
<intent-filter android:autoVerify="true">
<action android:name="android.intent.action.VIEW"/>
<category android:name="android.intent.category.BROWSABLE"/>
<category android:name="android.intent.category.DEFAULT"/>
</intent-filter>
</activity>
</application>
</manifest>
并在 build.gradle
文件中设置了 debuggable true
。
属性 android:debuggable
正在从 apk 中找到的合并清单中删除,我可以做些什么来确保它被正确设置而不将它添加到部分清单中(我不知道它在gradle 脚本运行时同步时间并且不想将其硬编码为 true)?
从部分清单文件的 application
节点删除 android:name
属性后,合并正确进行。
有效的部分清单:
<?xml version="1.0" encoding="utf-8"?>
<manifest package="com.app.myapp" xmlns:android="http://schemas.android.com/apk/res/android">
<application>
<activity android:name=".activity.MyActivity">
<intent-filter android:autoVerify="true">
<action android:name="android.intent.action.VIEW"/>
<category android:name="android.intent.category.BROWSABLE"/>
<category android:name="android.intent.category.DEFAULT"/>
</intent-filter>
</activity>
</application>
</manifest>
我正在使用 groovy 生成部分清单,其中包含来自我的构建配置文件的应用程序链接的意图过滤器声明。在 apk 中找到的合并清单看起来符合预期,但有一个问题:尽管在 build.gradle 中设置了属性 android:debuggable
,但它正在被删除。如果我删除部分清单并重建 apk,android:debuggable="true"
将按预期设置。
我的主要清单如下:
<manifest package="com.app.myapp"
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:installLocation="auto">
<application
android:name="MyApp"
tools:replace="android:theme, android:label, android:allowBackup">
</application>
</manifest>
我生成的部分清单如下所示:
<?xml version="1.0" encoding="utf-8"?>
<manifest package="com.app.myapp" xmlns:android="http://schemas.android.com/apk/res/android">
<application
android:name="MyApp">
<activity android:name=".activity.MyActivity">
<intent-filter android:autoVerify="true">
<action android:name="android.intent.action.VIEW"/>
<category android:name="android.intent.category.BROWSABLE"/>
<category android:name="android.intent.category.DEFAULT"/>
</intent-filter>
</activity>
</application>
</manifest>
并在 build.gradle
文件中设置了 debuggable true
。
属性 android:debuggable
正在从 apk 中找到的合并清单中删除,我可以做些什么来确保它被正确设置而不将它添加到部分清单中(我不知道它在gradle 脚本运行时同步时间并且不想将其硬编码为 true)?
从部分清单文件的 application
节点删除 android:name
属性后,合并正确进行。
有效的部分清单:
<?xml version="1.0" encoding="utf-8"?>
<manifest package="com.app.myapp" xmlns:android="http://schemas.android.com/apk/res/android">
<application>
<activity android:name=".activity.MyActivity">
<intent-filter android:autoVerify="true">
<action android:name="android.intent.action.VIEW"/>
<category android:name="android.intent.category.BROWSABLE"/>
<category android:name="android.intent.category.DEFAULT"/>
</intent-filter>
</activity>
</application>
</manifest>