我在安装 Android SDK 管理器中的某些版本时看到了 dx.jar 文件,它位于 tools/lib/dx.jar 下面。但在 Android-8 及以上版本中,我没有看到这个文件。然而,当我尝试使用 Android-8 及以上版本构建项目时,Intellij IDEA 报错说找不到 dx.jar 文件。这是怎么回事呢?
谢谢, Tom
我在安装 Android SDK 管理器中的某些版本时看到了 dx.jar 文件,它位于 tools/lib/dx.jar 下面。但在 Android-8 及以上版本中,我没有看到这个文件。然而,当我尝试使用 Android-8 及以上版本构建项目时,Intellij IDEA 报错说找不到 dx.jar 文件。这是怎么回事呢?
谢谢, Tom
除了CommonsWare的评论之外,还有一些其他信息。
在android-3和android-4中,dx.jar最初位于android-sdk/platforms/android-X/tools/lib/
下,后来移动到android-sdk/platform-tools/lib/
下。不幸的是,这从未在任何官方来源中记录,可能是因为它是Google不希望消费者开发者受到困扰的内部工具的一部分。查看这篇博客以了解问题。
只要你遵循Android安装指南并将android-sdk/tools/和android-sdk/platform-tools/添加到您的PATH环境变量中,您就可以访问dx.jar,除非您使用非常旧的Android SDK版本(我对此表示怀疑)。
最后,作为一个快速参考,这是SDK通常如何使用dx.jar与外部jar库一起对您的java字节码进行dex的命令:
[INFO] C:\Program Files\Java\jdk1.6.0_21\jre\bin\java [-Xmx1024M, -jar, C:\Program Files\Android\android-sdk\platform-tools\lib\dx.jar, --dex, --output=C:\workspace\myproject\target\classes.dex, C:\workspace\myproject\target\classes, C:\workspace\myprojec\libs\common-lib.jar, ... ...]
由于某些原因,我在各种Android SDK版本的子目录中看到了几个版本(不同大小的文件)的dx和dx.jar。我过去一直通过Eclipse来管理SDK,但几个月前在这方面发生了变化(现在有一个单独的SDK管理器窗口),所以可能在过渡过程中出了些问题...
android-8
或类似目录中看到它,因为它是工具的一部分,而不是单个 API 级别的 SDK 的一部分。 - CommonsWaredx
命令时,它会显示:“将一组 class 文件转换为 dex 文件,可选择将其嵌入到 jar/zip 中”。 - CommonsWare