添加Lib项目报错:Error:Execution failed for task ':app:processDebugManifest'.解决

来源:互联网 发布:淘宝网2016新款女衫 编辑:程序博客网 时间:2024/06/11 23:44

添加Lib项目报错:Error:Execution failed for task ‘:app:processDebugManifest’.解决

今天在创建一个项目的时候添加了一个Lib项目和很多依赖,发现程序运行不起来,最后一个一个依赖去掉,发现是依赖的Lib项目问题。

错误情况:

 Error:Execution failed for task ':app:processDebugManifest'. > Manifest merger failed with multiple errors, see logs

或者

Error:Execution failed for task ':app:processDebugManifest'.> Manifest merger failed : Attribute application@icon value=(@mipmap/ic_launcher) from AndroidManifest.xml:13:9-43    is also present at [BLEConnect:bleLibrary:unspecified] AndroidManifest.xml:17:9-41 value=(@drawable/o2_icon).    Suggestion: add 'tools:replace="android:icon"' to <application> element at AndroidManifest.xml:11:5-29:19 to override.

报错分析:

上面的第一种情况语句翻译下来就是:合并失败的意思,也就是说Lib工程中有和项目的配置冲突的地方。
第二种情况仔细看还是可发现一些提示的:application中的图标和Lib项目中的设置的图标不一致。

原因:

AS的Gradle插件默认会启用Manifest Merger Tool,若Library项目中也定义了与主项目相同的属性(例如默认生成的android:icon和android:theme),则此时会合并失败,并报上面的错误。

解决方法:

方法1:在Manifest.xml的application标签下添加tools:replace=”android:icon, android:theme”(多个属性用,隔开,并且记住在manifest根标签上加入xmlns:tools=”http://schemas.android.com/tools”,否则会找不到namespace哦)

<manifest xmlns:android="http://schemas.android.com/apk/res/android"          xmlns:tools="http://schemas.android.com/tools"          package="com.example.wenzhi.bleconnect"    >     <application        android:allowBackup="true"        android:icon="@mipmap/ic_launcher"        android:label="@string/app_name"        android:supportsRtl="true"        tools:replace="android:icon"   //这里设置合并的属性        android:theme="@style/AppTheme">

方法2:在build.gradle根标签上加上useOldManifestMerger true (懒人方法)

这个我也没有用过

添加Lib项目时,还有时候也会报这个错误:

app’s minSdk is higher than any library’s minSdk. 

要求app’s minSdk >= libraries minSdk
也就是说项目中的最小Sdk设置的数值要大于或等于Lib项目中的
这里的minSdk要是build.gradle的才算,在AndroidManfest中的不起作用!

项目中的配置:

1

Lib项目中的配置:

2

这里的Lib的最小版本要求比项目的高,所以程序编译会报错

1

Error:Execution failed for task ':app:processDebugManifest'.> Manifest merger failed : uses-sdk:minSdkVersion 15 cannot be smaller than version 17 declared in library [BLEConnect:bleLibrary:unspecified] > D:\androidStudioWorkPlace\BLEConnect\app\build\intermediates\exploded-aar\BLEConnect\bleLibrary\unspecified\AndroidManifest.xml    Suggestion: use tools:overrideLibrary="com.xtremeprog.sdk.ble" to force usage

上面的语句就是说项目中的最小版本SDK号15小于Lib项目中的17,这里只要把项目中的最小SDK改成17或者以上就可以了。

导入Lib项目或添加各种依赖的时候,不要一下子添加很多,要一两个添加,同步一下,看看报错了没有,再添加或做下一步,否则排查起来是很麻烦的。

共勉:做最优秀的自己:不断学习,天天向上

阅读全文
0 0
原创粉丝点击