我有一个应用程序与几个建设口味。我的主要AndroidManifest.xml中的部分看起来像这样:属性与Gradle清单合并丢失
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="some.test.app"
android:installLocation="auto"
android:versionCode="36"
android:versionName="v1.0.3" >
<uses-sdk android:minSdkVersion="16" android:targetSdkVersion="17" />
<uses-feature android:name="android.hardware.usb.host" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<application
android:name=".MyApp"
android:icon="@drawable/app_logo"
android:label="@string/app_name" >
<!-- possible values: dev, demo, prod -->
<meta-data
android:name="app_build_type"
android:value="dev" />
</application>
</manifest>
带香料的具体样本(demo
)清单如下所示:
<?xml version="1.0" encoding="utf-8"?>
<manifest
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
package="some.test.app">
<application>
<meta-data
android:name="app_build_type"
android:value="demo"
tools:replace="value"/>
</application>
</manifest>
而且gradle这个合并的结果是这样的:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="some.test.app"
android:versionCode="36" >
<uses-sdk android:minSdkVersion="16" android:targetSdkVersion="17" />
<uses-feature android:name="android.hardware.usb.host" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<application
android:name="some.test.app.MyApp"
android:icon="@drawable/app_logo"
android:label="@string/app_name" >
<meta-data
android:name="app_build_type"
android:value="demo" />
</application>
</manifest>
正如您所看到的,除manifest.installLocation
和manifest.versionName
之外,大部分节点和属性都被正确合并,它会消失而manifest.versionCode
仍然存在。这是什么原因,我该如何解决这个问题?