什么是Gradle或Android中的dex?

在Gradle中,dexoptions是什么意思?

有时由于一些错误,我的项目无法编译。
我需要激活ProGuard才能编译我的Android应用。

最佳答案

在标准的Java世界中:

当您编译标准Java代码时:编译器生成* .class文件。 * class文件包含可以在标准JVM上执行的标准Java字节码。

在Android世界中:

它是不同的。您使用Java语言编写代码,但是编译器不生成* .class文件,而是生成* .dex文件。 *.dex文件包含可以在Android虚拟机(dalvik)上执行的字节码,它不是标准的Java虚拟机。

需要明确的是:android中的dex文件与标准java中的类等效。

因此,在 dexoptions is a gradle object中定义了一些配置此java-code-to-android-bytecode转换的选项。通过此对象配置的选项是:

  • targetAPILevel
  • 强制jumbo模式(启用后,它允许在dex文件中使用更多字符串)

  • 启用jumboMode:
    android {
        dexOptions {
            jumboMode = true
        }
    }
    

    关于android - 什么是Gradle中的dex,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24224186/

    10-12 00:26