2020-03-11

Android开发BUG记录以及解决方式 第一记

项目导入萤石云平台库文件时,编译通过,运行时报出一下错误。

查看https://www.jianshu.com/p/f8ab9e9fec8c文章建议,在项目中的gradle.properties中添加

android.enableD8=true

成功解决问题。

bug报错图片

顺便记录下D8编译器的一些说明:

    Android 安装包的后缀都是 .apk, APK 是 Android Package 的缩写。在 APK 打包编译的过程中,会涉及到 javac 工具将 .java 文件编译为 .class 文件,然后 .class 文件经过脱糖由 dex 工具打包为 .dex 文件。

编译类型图

javac:用于将 .java 文件编译为 .class 文件;

desugar:用于将 Java 8 中的特性在 Android 平台上适配;

ProGuard:用于提出无用的 Java 代码并且做一些优化;

DX:将所有的 Java 代码转换为 DEX 格式。

在 Android Studio 3.X 以后,Google 分别引入 D8 编译器和 R8 工具作为新的 DEX 编译器和混淆压缩工具。

D8 编译器

Google 在 Android Studio 3.1 版本中引入 D8 编译器作为默认的 DEX 字节码文件编译器。通过在 gradle.properties 中新增 android.enableD8=true 开启 D8 编译器。

D8 编译器特点是:

编译更快、时间更短;

DEX 编译时占用内容更小;

.dex 文件大小更小;

D8 编译的 .dex 文件拥有相同或者是更好的运行时性能;

你可能感兴趣的:(2020-03-11)