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


68

我刚刚下载了Eclipse Galileo并安装了ADT10,并尝试使用该指南尝试使用phonegap应用程序:http ://www.phonegap.com/start 但是每次我尝试构建即时消息时都会收到此错误:未知错误:无法构建:该文件dx.jar尚未从SDK文件夹加载!

我知道在这个论坛中已经有一些关于它的问题/答案,但是它们对我没有用。

Answers:


92

这是由于不完整/混乱升级到最新版本导致的,导致dx.jar丢失{Android SDK dir}\platform-tools\lib\

解:

在中找到最新的dx.jar {Android SDK dir}\platforms\*

并将其复制到:

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

重新启动eclipse,clean您的项目和一切都会按预期工作。

(如果platform-tools\lib目录完全丢失,则必须使用SDK Manager重新安装“ Android SDK Platform-tools”。重新安装dx.jar后应该在其中,因此无需复制)

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

例如,在我的机器上,最新的是{Android SDK dir}\platforms\android-4\tools\lib\。(自2012年1月22日起,我没有找到任何较新的版本)。

我真的希望这对某人有用,因为我浪费了半天的时间来研究和寻找解决此类琐碎错误的方法... :-(


在备份原始dx.jar文件之前,请先备份它-此解决方案完全破坏了我的eclipse安装,现在,由于39条评论中的意见,我将不得不重新安装整个eclipse和android环境!
luben

2
发生问题是因为我有两个不同的Eclipse IDE-Juno和Indigo。Juno工作正常,但是Indigo用dx.jar文件向我显示了此错误。然后我按照此处的建议复制了dx.jar,但靛蓝月食仍然无法正常工作。但是,Juno eclipse那时也停止了工作:)解决方案是从eclipse卸载ADT插件并下载新的SDK,然后再次安装该插件并将其指向新的SDK目录。我的第一个错误是在复制和覆盖dx.jar文件之前忘记备份它。
luben 2013年

1
我懂了。好吧,那是很不幸的。我将对您的第二条评论+1,以便对处于类似情况(例如2xEclipse)的人们有所提示。
Ognyan 2013年

1
在这里可以找到dx.jar文件:C:\ Users \ Jaime \ android-sdks \ build-tools \ 26.0.0-preview \ lib \ dx.jar。我知道当我尝试运行该项目时,它正在尝试在我拥有该项目的位置中找到dx.jar。问题是由于某种原因,它始终无法加载。我一直收到此错误:“ Dex Loader”无法加载C:\ Users \ Jaime \ android-sdks \ build-tools \ 26.0.0-preview \ lib \ dx.jar。我已经从两台不同的计算机上尝试过,错误完全相同。有任何想法吗?
Jaime Montoya

1
@JaimeMontoya我有一个类似的问题。由于我始终使用其他Android版本进行构建,因此我只想彻底删除26.0.0-preview目录。那行得通,但是我不确定我会推荐这种方法。
FCo

39

升级后缺少platform-tools \ lib文件夹(我的Eclipse已打开)。使用sdk管理器关闭eclipse,然后卸载并安装“ Android SDK平台工具”。


38

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

这是与android-sdk 26.0.0版“ build-tools”相关的兼容问题。

简单的解决方案:

  • 删除“ build-tools”目录中的“ 26.0.0”
  • 使用“ 25.0.2”代替
  • 重新开始蚀

其他解决方案:

  • 将此添加到您的项目的project.properties中:
    sdk.buildtools = 25.0.2

祝好运!


@Verdigrass这与我提出的解决方案不同吗?
rsp1984 '17

@ rsp1984类似,但是版本和平台不同。
Verdigrass

1
您不需要为要支持的每个目标版本删除任何构建工具(可以有多个版本)。ANDROID_SDK\tools\bin\sdkmanager.bat --install build-tools;25.0.3如果您的目标是API 25,则可以使用-安装构建工具25.0.3 。
Dan Dar3

请记住您遇到此问题的日期!!!先前获得高票的答案不再起作用!下班后这个解决方案为我工作!我目前正在使用Java JDE 8.x(我有9个,但已还原;现在不确定是否需要,但值得一提)。*确保退出Eclipse->使用SDK Manager进行卸载->物理删除所有剩余的文件夹
Kevin

我一直忘记不删除25.0.3,而且我总是能找到答案:)
汤姆

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
Dan Dar3 '17

1
谢谢,它确实适用于我的旧Cordova版本代码。
普拉萨德'18

9

我在Mac OS 10.12.4上运行Eclipse Neon.2和Android SDK Build-tools + platform-tools版本26,以上答案(包括已接受的答案)对我都不起作用。

什么的工作是

  1. 退出Eclipse

  2. 删除文件夹,<android-sdk>/build-tools/26.0.0然后通过Android SDK管理器安装(较旧)版本25.0.3的构建工具。

  3. 再次启动Eclipse


1
我在使用neon.3的Windows 10上,这就是给我的。谢谢!
戴夫

当在更新的Windows PC上检查旧的Eclipse Juno项目时,此解决方案确实有效。我猜当前的构建工具只是缺少它吗?
cgv

4

无论是发生在我身上还是发生,都是因为我已更改为win7,并安装了最新的ADT以使其日蚀,但是我使用了旧的Android SDK。最后,我通过将Android SDK更新到最新版本来解决此问题。


4

对我来说,eclipse在SDK Manager中找错了位置。为了解决这个问题,我做了

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

注意:SDK管理器告诉您在UI顶部附近使用的目录。

我已经安装了新版本的eclipse,该新版本的ADT与Android开发者网站捆绑在一起,但是当我打开eclipse时,它正在查看旧的SDK.exe位置。

hth


3

我还没有看到这个特定的问题,但是使用Eclipse Helios或Indigo可能会获得更好的结果。Galileo越来越老了,不太可能像最新的Eclipse平台一样经过测试。


3

有时您只需要在更新后重新启动Eclipse,它对我来说就可以解决该错误


3

另外,请确保AndroidSDKTools支持ADT的版本。那解决了我的问题。在SDK Manager中,文件->重新加载将导致最新的修订。



2

Windows 7 64位,英特尔i7

在我将SDK更新为与Jelly Bean兼容之后,我也发生了这种情况。文件夹platform-tools \ lib消失了。首先,我也无法在SDK管理器中卸载/重新安装程序工具。它给我一个错误,即android \ temp文件夹中的特定文件不存在。我不得不更改android文件夹上的权限以允许所有操作,这解决了它。


2

即使在我的UBuntu-16.04中重新安装“ Android SDK平台工具”后,LTS问题仍然存在。我正在使用Eclipse-氧气。将dx.jar从/build-tools/25.0.3/lib复制到/build-tools/26.0.0-preview/lib解决了我的问题。



1

如果您已经更新了ADT工具和SDK平台,并且看到上述错误,请重新启动Eclipse。



0

这对我来说是工作

"26.0.0""build-tools"目录中删除使用“25.0.2"代替”重新启动Eclipse

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.