【问题标题】:What is dx.jar in the Android SDKs?Android SDK 中的 dx.jar 是什么?
【发布时间】:2012-05-04 21:18:48
【问题描述】:

我在使用 Android SDK 管理器安装的一些 Android SDK 版本中看到的 dx.jar 文件的用途是什么?该文件出现在 tools/lib/dx.jar 下我没有在 android-8 及更高版本中看到该文件。但是,当我尝试使用 android-8 及更高版本构建项目时,Intellij IDEA 会出错,说 dx.jar 不存在。什么给了?

谢谢, 汤姆

【问题讨论】:

  • dx.jar 是构建过程的一部分,用于将 Java 字节码转换为 Dalvik 字节码。您永远不会在 android-8 或类似目录中看到它,因为它是工具的一部分,而不是单个 API 级别的 SDK 的一部分。
  • @CommonsWare 你怎么知道它被用来将 java 类转换为 dalvik 字节码?
  • @hugemeow:当您运行 dx 命令时,它会说:“将一组类文件转换为 dex 文件,可选择嵌入到 jar/zip 中”。

标签: java android intellij-idea


【解决方案1】:

目前dx.jar已移至

adt-bundle-*\sdk\build-tools\17.0.0\lib

你可以找到dxhere的源代码。

【讨论】:

    【解决方案2】:

    CommonsWare 评论的补充。

    dx.jar 原来位于android-sdk/platforms/android-X/tools/lib/ 之前(尤其是在android-3 和android-4 中),后来移动到android-sdk/platform-tools/lib/。不幸的是,这从未在任何官方来源中记录,可能是因为它是 Google 不希望消费者开发人员打扰的内部工具的一部分。查看this blog 以查看问题。

    只要您关注Android installation guide 并将 android-sdk/tools/ 和 android-sdk/platform-tools/ 添加到您的 PATH 环境变量中,您应该可以访问 dx.jar,除非您使用非常旧的Android SDK 版本(我对此表示怀疑)。

    最后,作为快速参考,这是 SDK 通常如何使用 dx.jar 将您的 java 字节码与外部 jar 库 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, ... ...]

    【讨论】:

      【解决方案3】:

      出于某种原因,我确实在各种 android sdk 版本子目录中看到了 dx 和 dx.jar 的多个版本(不同大小的文件)。我一直在通过 Eclipse 管理 SDK,几个月前在这方面发生了变化(现在有了一个单独的 SDK 管理器窗口)——所以也许在那个过渡过程中事情以某种方式搞砸了......

      【讨论】:

      • dx 只是一个用于运行 lib/dx.jar 的 shell 脚本。
      猜你喜欢
      • 2011-07-10
      • 2016-11-30
      • 2019-10-13
      • 2015-09-19
      • 1970-01-01
      • 2023-04-02
      • 2017-12-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多