运行适用于 Android 的 dx 或 d8 工具时出错

Pus*_*pam 2 android dx android-d8

我正在尝试从命令行手动构建 Android 应用程序。
但是,每当我运行位于 Android SDK build-tools 目录中的 dx.bat 命令时,我总是会收到错误。无论我给出哪个选项,我总是会遇到相同的错误。运行时dx --help,我收到此错误:
-Djava.ext.dirs=E:\.android\SDK\build-tools\29.0.2\lib is not supported. Use -classpath instead. Error: Could not create the Java Virtual Machine. Error: A fatal exception has occurred. Program will exit.

当我使用 Android Studio 时,我没有遇到任何此类问题。我犯了什么错误以及如何让 dx.bat 文件正常工作?

Pus*_*pam 6

我通过编辑 dx.bat 文件解决了这个问题。
正如错误中提到的

-Djava.ext.dirs=E:\.android\SDK\build-tools\29.0.2\lib is not supported.  Use -classpath instead.
Error: Could not create the Java Virtual Machine.
Error: A fatal exception has occurred. Program will exit.
Run Code Online (Sandbox Code Playgroud)

我刚刚更改了 dx.bat 文件的这一行(最后一行):

call "%java_exe%" %javaOpts% -Djava.ext.dirs="%frameworkdir%" -jar "%jarpath%" %params%
Run Code Online (Sandbox Code Playgroud)

对此:

call "%java_exe%" %javaOpts% -classpath "%frameworkdir%" -jar "%jarpath%" %params%
Run Code Online (Sandbox Code Playgroud)

  • 我遇到了同样的问题,以上解决方案有效,至少对于 d8 或 dx.bat 来说是这样。但是,由于 Android Studio 注意到此类更改,因此它会不时删除这些文件。因此,更好的解决方案是将 JAVA_HOME (临时)指向 Java8 安装,并且无需更改上述文件。似乎 Java11 或 Java15 中不再支持选项 -Djava.ext.dirs= ,因此会发生上述错误。 (2认同)