關於Support包的版本問題


今天跑了下某項目,發現報錯:

Error:Execution failed for task ':app:transformClassesWithJarMergingForDevDebug'.
> com.android.build.api.transform.TransformException: java.util.zip.ZipException: duplicate entry: android/support/v4/content/SharedPreferencesCompat$1.class

大家看了就知道,這基本上就是support包版本兼容問題,可是之前打開過沒有問題啊,怎么今天就跑不起來了?

懷疑是Dependency中存在標示為獲取最新版本的庫(依賴包沒有標記具體的版本號,而是使用了加號“+”),因為發布了新的包,和項目中其他的包發生了版本沖突所導致的。

所以直接就來看項目中的build.gradle文件,發現以下代碼:

compileSdkVersion 23
...
dependencies { compile fileTree(dir:
'libs', include: ['*.jar']) compile 'com.android.support:design:23.1.0' compile 'com.android.support:support-v4:23.1.0' compile 'com.android.support:appcompat-v7:23.1.0' compile 'com.android.support:recyclerview-v7:+' }

我們知道,support包的版本都需要和compileSdkVersion是一致的(大版本號上一致)。

而這里recyclerview的support包制定了最新版本進行編譯(題主不久前更新到24),所以recyclerview使用了24的包進行編譯,所以導致了上面的錯誤。

 

找到了問題,那么解決的方法也就有了,直接把版本號改成和其他support包一樣:

compile 'com.android.support:recyclerview-v7:+'

=>

compile 'com.android.support:recyclerview-v7:23.1.0'

編譯,成功。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM