Manifest merger failed : Attribute meta-data#android.support.VERSION@value value=(25.4.0) from [com.android.support:preference-v14:25.4.0] AndroidManifest.xml:25:13-35
is also present at [com.android.support:support-v4:26.1.0] AndroidManifest.xml:28:13-35 value=(26.1.0).
Suggestion: add 'tools:replace="android:value"' to <meta-data> element at AndroidManifest.xml:23:9-25:38 to override.
編譯器給出的錯誤訊息一向是跟天書差不多,但仔細看一下覺得應該是 support library 不匹配的問題,SO 有人說 project 中用到的 support library 都應該使用同一個版本,但我的 gradle script 中宣告的 support library 都是 v25.4 版
目標轉向懷疑是別的 dependencies library 出問題了,經過一個一個排查之後,發現問題是出在 google service library,我原本是用 8.4.0 版
com.google.android.gms:play-services-appindexing:8.4.0
後來改成了 16.0.1 版
com.google.firebase:firebase-appindexing:16.0.1
就是這個改動讓編譯出錯,照編譯器的錯誤訊息來看,猜測應該是因為最新的 16.0.1 google service library 依賴於 v26.1 版 support library,而我 project 內用的是 v25.4 版,而解決方法就是將 google service library 降為 10.0.0 就可以編譯成功了
在使用 dependencies library 的時候要注意不能無腦升級,需確定所有 library 依賴的 support library 版本都要一致才行
沒有留言:
張貼留言