我正在使用具有許多不同庫依賴項的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條經(jīng)驗 獲得超4個贊
我剛剛遇到tools:replace=...了OP描述的相同行為。
事實證明,tools:replace清單合并忽略的根本原因是此處描述的錯誤。這基本上意味著,如果您的項目中有一個包含清單的庫,而清單的<application ...>節(jié)點包含一個tools:ignore=...屬性,則很可能tools:replace=...會忽略主模塊清單中的屬性。
這里的棘手點是它可以發(fā)生,但不是必須的。在我的情況下,我有兩個庫,一個具有tools:ignore=...屬性的庫A,一個具有在相應清單中要替換的tools:replace=...屬性以及在主模塊的清單中的屬性的庫B。如果B的清單在A的清單之前被合并到主清單中,則一切正常。以相反的合并順序出現(xiàn)錯誤。
這些合并發(fā)生的順序似乎有些隨機。在我的情況下,更改的“依賴關系”部分中的順序build.gradle沒有任何效果,但更改風味的名稱即可。
因此,唯一可靠的解決方法似乎是解開引起庫的問題,刪除tools:ignore=...標簽(應該沒問題,因為這僅是皮棉的提示),然后再次打包庫。
并為要修復的錯誤投票,是有原因的。
- 3 回答
- 0 關注
- 1085 瀏覽
添加回答
舉報
0/150
提交
取消