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

 


 

你可能感兴趣的:(android基础)