Android ADT错误,dx.jar未从SDK文件夹加载

68
我刚刚下载了Eclipse Galileo,并安装了ADT10,尝试使用这个指南创建一个Phonegap应用程序:http://www.phonegap.com/start 但每次我尝试构建时都会出现以下错误:未知错误:无法构建:dx.jar文件没有从SDK文件夹中加载! 我知道在这个论坛中已经有一些关于此的问题/答案,但它们对我不起作用。
17个回答

92

这是由于升级到最新版本时出现不完整/混乱的情况导致 {Android SDK dir}\platform-tools\lib\ 中缺少 dx.jar 文件。

解决方案:

{Android SDK dir}\platforms\* 中找到最新的 dx.jar 文件,并将其复制到:

{Android SDK dir}\platform-tools\lib\

重新启动Eclipse,clean您的项目,��切应该正常工作。

(如果整个 platform-tools\lib 目录都不存在,则必须使用 SDK 管理器重新安装“Android SDK 平台工具”。重新安装后 dx.jar 应在其中,因此无需复制)

如果在任何 {Android SDK dir}\platforms\* 子目录中都找不到 dx.jar,则必须启动 SDK 管理器并安装 Android 1.6 SDK。

例如,在我的计算机上,最新版本位于 {Android SDK dir}\platforms\android-4\tools\lib\。(截至2012-01-22,Android SDK R15 我没有找到任何更新版本)。

我真的希望这对某些人有用,因为我浪费了半天时间来研究和寻找如此微不足道的错误... :-(


2
问题出现的原因是我安装了两个不同版本的Eclipse IDE - Juno和Indigo。Juno一直运行良好,但是Indigo显示dx.jar文件出错。然后我按照这里的建议复制了dx.jar文件,但是Indigo Eclipse仍然无法工作。然而,此时Juno Eclipse也停止工作了:) 解决方案是从Eclipse中卸载ADT插件,下载全新的SDK并重新安装插件,并将其指向新的SDK目录。我的第一个错误是在复制和覆盖dx.jar文件之前忘记备份它。 - luben
1
我明白了。好的,那真是太不幸了。我会点赞你的第二条评论,以便提醒其他遇到类似情况(即2xEclipses)的人们。 - Ognyan
我第一次遇到这个问题是在更新Eclipse时。Eclipse的升级导致我与我已安装的SDK不兼容。所以,我的下一步是下载最新版本的SDK并进行安装。仅安装SDK还不够。然后我需要运行Android SDK Manager,并允许它升级所有它认为必要的内容。完成后,我继续出现此问题。最后一步是重新启动Eclipse,最终,错误的混乱消失了。 - BluJ IT
1
这是我可以找到dx.jar文件的路径:C:\Users\Jaime\android-sdks\build-tools\26.0.0-preview\lib\dx.jar。我知道当我尝试运行项目时,它会在我拥有它的位置寻找dx.jar文件。问题是由于某种原因它总是加载失败。我一直遇到这个错误:“Dex Loader] Failed to load C:\Users\Jaime\android-sdks\build-tools\26.0.0-preview\lib\dx.jar”。我已经尝试了两台不同的计算机,但是错误还是完全相同。有任何想法吗? - Jaime Montoya
1
@JaimeMontoya 我曾经遇到过类似的问题。最终我决定将26.0.0-preview目录完全删除,因为我使用的是不同的Android版本进行构建。虽然这种方法有效,但我不确定是否推荐这样做。 - FCo
显示剩余4条评论

39

升级后(我的eclipse打开着),platform-tools\lib文件夹丢失。 关闭eclipse,使用sdk管理器卸载并安装"Android SDK platform-tools"。


38

我昨天也遇到了同样的问题,发生在 Eclipse Neon Release (4.6.0) 中。

这是与 android-sdk 的 "build-tools" 版本 26.0.0 相关的兼容性问题。

简单解决方案:

  • 删除 "build-tools" 目录中的 "26.0.0"
  • 改用 "25.0.2" 版本
  • 重新启动 Eclipse

其他解决方案:

  • 将以下代码添加到项目的 project.properties 文件中:
    sdk.buildtools=25.0.2

祝好运!


@Verdigrass 这跟我的解决方案有什么不同吗? - rsp1984
@rsp1984 这个类似,但是在不同的版本和平台上。 - Verdigrass
1
你不需要删除任何构建工具(你可以拥有多个版本),以支持每个目标版本。如果你的目标是API 25,你可以使用 ANDROID_SDK\tools\bin\sdkmanager.bat --install build-tools;25.0.3 安装构建工具25.0.3。 - Dan Dar3
请记住您遇到此问题的日期!!!以前得到高票的答案已经不再适用!这个解决方案在我花费数小时后终于奏效了!!!我目前正在使用Java JDE 8.x(我曾经使用过9,但已回退;现在是否必要不确定,但值得一提)。*确保您退出Eclipse->使用SDK Manager进行卸载->物理删除任何剩余文件夹。 - Kevin
我总是忘记不要删除25.0.3,然后我总能找到这个答案 :) - Tom
显示剩余2条评论

10

自从我将构建工具从25.0.0升级到26.0.0以来,我在Eclipse中遇到了这个问题。

我只需在我的project.properties文件中添加"sdk.buildtools=25.0.0",就可以再次正常工作。

我的project.properties文件:

target=android-23
sdk.buildtools=25.0.0
android.library.reference.1=../design

1
您可以同时安装多个构建工具,以支持您想要的每个目标版本。您可以使用 ANDROID_SDK\tools\bin\sdkmanager.bat --install build-tools;25.0.3 安装 25.0.3 版本。 - Dan Dar3
1
谢谢,这对我的旧代码和旧版 Cordova 真的很有效。 - Prasad

9
我曾在 Mac OS 10.12.4 上使用 Eclipse Neon.2 和 Android SDK Build-tools + platform-tools 版本 26,但上述所有答案(包括被接受的答案)都不适用于我。
实现的方法是:
1.退出 Eclipse 2.删除文件夹 /build-tools/26.0.0,并通过 Android SDK 管理器安装较老的版本 25.0.3 的构建工具。 3.重新启动 Eclipse

1
我正在使用neon.3的Windows 10,这就是我的情况。谢谢! - Dave
检查旧版Eclipse Juno项目时,在更新的Windows PC上,这个解决方案确实可行。 我猜这是当前构建工具中缺少的东西? - cgv

4

对我来说,Eclipse在错误的位置寻找SDK Manager。我解决这个问题的方法是:

  • 窗口/首选项/Android/SDK位置

注意:在UI顶部附近,SDK管理器会告诉您它正在使用哪个目录。

我安装了一个新版本的Eclipse,其中包含了从Android开发者网站打包的ADT,但当我打开Eclipse时,它却查看旧的SDK.exe位置。

希望这有所帮助。


4

我也遇到了这个问题,是因为我更换到win7操作系统并安装了最新的ADT插件到eclipse上,但我使用的是旧版的Android SDK。最终,我通过更新我的Android SDK到最新版本来解决了这个问题。


3

同时,请确保ADT的版本得到AndroidSDKTools的支持。这样可以解决我的问题。在SDK管理器中,选择“文件”->“重新加载”即可更新到最新版本。


3
有时在更新后,你只需要重新启动Eclipse就可以解决这个错误。

3

我没有看到过这个具体的问题,但是使用Eclipse Helios或Indigo可能会得到更好的结果。Galileo已经老了,不太可能像最近的Eclipse平台那样被测试。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接