使用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>
重新编译后,错误消失。
本文介绍了在Android Studio中开发时遇到的Manifest合并失败问题及其解决方案。问题出现在两个工程(A和B)间,其中B作为库被A引用。由于两个工程的AndroidManifest.xml文件都定义了相同的app name,导致编译错误。通过在主工程A的配置文件中加入特定的命名空间和替换属性,成功解决了这一问题。

7604

被折叠的 条评论
为什么被折叠?



