我尝试在Android Studio中将自己的图标添加到我的应用中,但我遇到了Manifest合并失败。我提出了一个相同的问题here,但他的答案对我不起作用。我尝试添加tools:replace="android:icon"
和tools:replace="android:icon,android:theme"
(当然在两个不同的场合),但没有变化。
这是Android Studio一直给我的错误。
Error:(12, 9) Execution failed for task ':app:processDebugManifest'.
> Manifest merger failed : Attribute application@icon value=(@drawable/footynews_logo_new) from AndroidManifest.xml:12:9
is also present at com.arasthel:gnavdrawer-library:1.1.4:4:45 value=(@drawable/ic_launcher)
Suggestion: add 'tools:replace="android:icon"' to <application> element at AndroidManifest.xml:9:5 to override
Error:(12, 9) Attribute application@icon value=(@drawable/footynews_logo_new) from AndroidManifest.xml:12:9
编辑:我刚发现即使我认为应用程序在我的项目目录中使用了ic_launcher,它实际上是在我正在使用的一个库中使用ic_launcher。如何强制应用程序使用我的启动器图标?
答案 0 :(得分:19)
tools:replace="android:icon,android:theme"
应该有效。希望你添加
xmlns:tools="http://schemas.android.com/tools"
如果这不起作用,您还有其他选择。使用旧的清单合并。将其添加到build.gradle
文件
android { useOldManifestMerger true }
您可以找到更多信息here。
答案 1 :(得分:5)
在清单文件中添加两行:
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="..."
xmlns:tools="http://schemas.android.com/tools"> <!--Add this line-->
<application
android:icon="@drawable/icon"
android:label="@string/app_name"
tools:replace="icon, label"/> <!--Add this line-->
</manifest>