Error:Java 8 language support, is not supported when 'android.useDexArchive= false'.

最近在其它項目集成bugly的tinker熱修復的時候,報了Error:Java 8 language support, as requested by 'android.enableD8.desugaring= true' in your gradle.properties file, is not supported when 'android.useDexArchive= false'. 由於這個項目是指定 java8,其它項目低於8的沒有這個問題。

什麼是D8 ?D8的功能是把java字節碼轉化成dex代碼,D8作爲DX的一個替換方案。

D8的使用:

Android Studio 3.0 : 需要主動在gradle.properties文件中新增:android.enableD8=true
Android Studio 3.1或之後的版本D8將會被作爲默認的Dex編譯器。如果遇到問題,你可以通過修改gradle.properties文件裏的一個屬性恢復到DX android.enableD8=false

如果想詳細查看有關D8的知識可以看這個博客:Android Studio 3.0+ 新Dex編譯器D8 Desugar R8

 

如何解決這個問題:

當前項目配置:

classpath 'com.android.tools.build:gradle:3.2.1'

// 集成Bugly熱更新aar(本地集成使用方式)
implementation 'com.tencent.bugly:crashreport_upgrade:latest.release'
//1. 指定tinker依賴版本(注:應用升級1.3.5版本起,不再內置tinker)
implementation 'com.tencent.tinker:tinker-android-lib:1.9.9'

按照提示新增了:gradle.properties文件

內容爲: 

android.enableD8.desugaring = true
android.useDexArchive = true

結果還是提示上面的錯誤,將 'com.tencent.bugly:crashreport_upgrade:latest.release' 改爲: 'com.tencent.bugly:crashreport_upgrade:1.3.6'  具體爲1.3.6的版本,就可以了。 

但是會出現警告,但是可以編譯通過了。希望官方儘快修復這個問題吧。

github上面已經有人提出這個問題了:https://github.com/BuglyDevTeam/Bugly-Android-Demo/issues/67

 


 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章