使用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>
重新编译后,错误消失。