今天在导入一个emoji的控件的时候提示Error:(14, 9) Attribute application@icon value=(@drawable/ic_launcher) from AndroidManifest.xml:14:9
百度了一下,这是一个编译的常见错误,主要是AS的Gradle插件默认会启用Manifest Merger Tool,若Library项目中也定义了与主项目相同的属性(例如默认生成的android:icon和android:theme),则此时会合并失败,并报上面的错误。
可惜看的那篇文章的解决方法讲的不清不楚,依然没有搞懂要怎么弄,于是找到另一篇文章中有完整的代码,一目了然。
注意修改的地方在于第2行的
xmlns:tools="http://schemas.android.com/tools"
和application最后一行的
tools:replace="android:icon, android:theme"
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
package="com.leo.kang.demo"
android:versionCode="1"
android:versionName="1.0">
<uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="18" />
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme"
tools:replace="android:icon, android:theme">