我正在使用具有许多不同库依赖项的gradle项目,并使用新的清单合并。在我的<application />标签中,我将其设置为:<application tools:replace="android:icon, android:label, android:theme, android:name" android:name="com.example.myapp.MyApplcation" android:allowBackup="true" android:icon="@drawable/ic_launcher" android:label="@string/application_name" android:logo="@drawable/logo_ab" android:theme="@style/AppTheme" >....</application>但是我收到错误:/android/MyApp/app/src/main/AndroidManifest.xml:29:9 Error:Attribute application@icon value=(@drawable/ic_launcher) from AndroidManifest.xml:29:9is also present at {Library Name} value=(@drawable/app_icon)Suggestion: add 'tools:replace="android:icon"' to <application> element at AndroidManifest.xml:26:5 to override/android/MyApp/app/src/main/AndroidManifest.xml:30:9 Error:Attribute application@label value=(@string/application_name) from AndroidManifest.xml:30:9is also present at {Library Name} value=(@string/app_name)Suggestion: add 'tools:replace="android:label"' to <application> element at AndroidManifest.xml:26:5 to override/android/MyApp/app/src/main/AndroidManifest.xml:27:9 Error:Attribute application@name value=(com.example.myapp.MyApplication) from AndroidManifest.xml:27:9is also present at {Another Library}Suggestion: add 'tools:replace="android:name"' to <application> element at AndroidManifest.xml:26:5 to override/android/MyApp/app/src/main/AndroidManifest.xml:32:9 Error:Attribute application@theme value=(@style/AppTheme) from AndroidManifest.xml:32:9is also present at {Library Name} value=(@style/AppTheme)Suggestion: add 'tools:replace="android:theme"' to <application> element at AndroidManifest.xml:26:5 to override
3 回答
慕村225694
TA贡献1880条经验 获得超4个赞
我刚刚遇到tools:replace=...了OP描述的相同行为。
事实证明,tools:replace清单合并忽略的根本原因是此处描述的错误。这基本上意味着,如果您的项目中有一个包含清单的库,而清单的<application ...>节点包含一个tools:ignore=...属性,则很可能tools:replace=...会忽略主模块清单中的属性。
这里的棘手点是它可以发生,但不是必须的。在我的情况下,我有两个库,一个具有tools:ignore=...属性的库A,一个具有在相应清单中要替换的tools:replace=...属性以及在主模块的清单中的属性的库B。如果B的清单在A的清单之前被合并到主清单中,则一切正常。以相反的合并顺序出现错误。
这些合并发生的顺序似乎有些随机。在我的情况下,更改的“依赖关系”部分中的顺序build.gradle没有任何效果,但更改风味的名称即可。
因此,唯一可靠的解决方法似乎是解开引起库的问题,删除tools:ignore=...标签(应该没问题,因为这仅是皮棉的提示),然后再次打包库。
并为要修复的错误投票,是有原因的。
- 3 回答
- 0 关注
- 1048 浏览
添加回答
举报
0/150
提交
取消