使用android studio開發過程中,新建了A、B兩個工程,其中B是庫工程,工程A引用庫工程B,編譯過程中出現:Manifest merger failed : Attribute application@label value=(@string/app_name),從log看,導致該錯誤的原因是工程A和工程B中的AndroidManifest.xml文件中都使用了app name,合並manifest的過程出現了問題。
根據studio的suggestion:在A工程中的AndroidManifest.xml中加上以下兩行:
xmlns:tools="http://schemas.android.com/tools"
tools:replace="android:label"
下面是A工程的AndroidManifest.xml片段:
<?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="com.xx.xx" android:versionCode="74" android:versionName="v3.4.1.1604071200" > <uses-sdk android:minSdkVersion="9" android:targetSdkVersion="19"/> <application android:name="com.tc.cloud.McldApp" android:persistent="true" android:theme="@android:style/Theme.NoTitleBar" android:icon="@drawable/icon" android:allowBackup="false" android:supportsRtl="true" android:label="@string/mcs_app_name" tools:replace="android:label"
B工程的AndroidManifest.xml片段:
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="xx.xx.mylibrary"> <application android:allowBackup="false" android:label="@string/app_name" android:supportsRtl="true"> </application> </manifest>