未知错误:无法构建:未从SDK文件夹加载文件dx.jar

时间:2017-03-24 21:47:04

标签: java android eclipse eclipse-adt android-sdk-manager

当我尝试在Eclipse ADT上运行我的Android项目时,我在控制台中看到了这一点:

625 px x 465 px

[2017-03-24 15:34:41 - CouponClub]未知错误:无法构建:文件dx.jar未从SDK文件夹加载!

enter image description here

我正在使用Eclipse Neon.2 Release(4.6.2):

enter image description here

这是我从Android SDK Manager看到的软件包配置:

enter image description here

我从该错误中理解的是,它无法加载dx.jar,因为它试图从“SDK文件夹”加载它。该消息甚至使用感叹号来表示!它指的是什么SDK文件夹?我认为在这种情况下“C:\ Users \ jaimemontoya \ android-sdks”将被视为SDK文件夹。你知道它在哪里找到“dx.jar”文件吗?

16 个答案:

答案 0 :(得分:25)

没有一个答案对我有帮助,只有我的决定才能解决问题:

修复是复制

android-sdk/build-tools/25.0.3/lib

到文件夹

android-sdk/build-tools/26.0.1/lib

现在一切都很棒!

答案 1 :(得分:13)

我今天遇到了同样的错误,碰巧发现了你的帖子。经过多次尝试,我发现删除 26 rc1 Build-tools 可以帮助解决问题。

答案 2 :(得分:8)

一起工作Eclipse和Android Studio

> add this to the project.properties of your project:
> sdk.buildtools=25.0.2

答案 3 :(得分:7)

Got "unsupported class file version 52.0" after including a module to a project阅读接受的答案给了我提示我需要找到解决方案。

我最终安装了这个Android SDK:

enter image description here

然后我从“jre1.8.0_121”切换到“jre7”,并将我的编译器合规级别从“1.8”更改为“1.7”:

enter image description here

enter image description here

我的应用程序最终成功编译。

答案 4 :(得分:3)

Eclipse ADT不再支持。因此Google打破了向后兼容性,从dx.jar中删除了两个类。
您可以轻松修复它。

  1. 转到您的sdk文件夹。从最新的构建工具导航至dx.jar
    例如build-tools\28.0.3\lib
  2. 在任何zip归档文件中打开dx.jar
    我使用WinRAR。
  3. 导航到归档文件中的路径com\android\dx\command
    在这里看不到文件DxConsole$1.classDxConsole.class
  4. 现在导航到dx.jar之前的25.0.3
  5. 再次导航至此存档中的com\android\dx\command
    在这里您可以看到文件DxConsole$1.classDxConsole.class
  6. 将其从旧的dx.jar复制到新的dx.jar。我只是将其从一个WinRAR窗口拖放到另一个窗口。

全部完成。现在,您可以将新的dx.jar与Eclipse ADT一起使用。

此解决方案比替换dx.jar更好,因为您可以使用dx.jar的新版本。

您需要在每个更新构建工具上执行此步骤。

答案 5 :(得分:2)

我也有同样的问题但是,我决定卸载eclipse,然后删除整个文件夹...你可以点击Help(在eclipse上)--->然后关于日食' --->然后安装细节'并卸载,删除整个文件夹后,我重新下载了eclipse和SDK下载管理器中的所有SDK,它又开始为我工作了。希望它成功。

答案 6 :(得分:2)

经过几个小时的挣扎,我找到了一些你觉得有用的谜题线索。

首先,我在当前工作空间中找到了记录错误的日志,特别是:

!ENTRY org.eclipse.andmore 4 0 2017-12-21 06:05:34.764
!MESSAGE Failed to load C:\Program Files (x86)\Android\android-sdk\build-tools\27.0.2\lib\dx.jar
!STACK 0
java.lang.ClassNotFoundException: com.android.dx.command.DxConsole
    at java.net.URLClassLoader.findClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at org.eclipse.andmore.internal.build.DexWrapper.loadDex(DexWrapper.java:109)
    at org.eclipse.andmore.internal.sdk.Sdk.getDexWrapper(Sdk.java:806)
    at org.eclipse.andmore.internal.build.BuildHelper.executeDx(BuildHelper.java:777)
    at org.eclipse.andmore.internal.project.ExportHelper.exportReleaseApk(ExportHelper.java:274)
    at org.eclipse.andmore.internal.project.ExportHelper$2.run(ExportHelper.java:376)
    at org.eclipse.core.internal.jobs.Worker.run(Worker.java:55)

所以除了加载失败之外还有别的东西。

我检查了dx.jar,我验证了DxConsole类不存在。更重要的是,DxConsole不在26.0.3中。但是,我在25.0.3中找到它(我刚刚使用任何二进制工具打开jar并查找DxConsole。即使它是一个Zip文件,DxConsole文件名也无法压缩,因此很容易搜索)。

总结一下,那些说用dx.jar替换旧dx.jar版本的用户是正确的。
- 您需要先关闭Eclipse(否则您将尝试更换jar文件时出错) - 小心你用于替换的dx.jar版本(25.0.3为我工作)
- 备份{android sdk} \ build-tools \ 27.0.2 \ lib \ dx.jar并将其替换为{android-sdk} build-tools \ 25.0.3 \ lib \ dx.jar
- 任何拥有26.0.x版本的人都可能发生这个问题 - 这对我有用,之后我找到了“没有找到DEX文件”,但我想这与此无关。否则,我会改进这个答案。

很少有其他注意事项:

- 我正在使用Eclipse Neon 3.
- 我的proyect正在使用Android 4.2.2(API 17)和Android(API 10),所以问题似乎与我的项目无关。我相信那里有聪明的人会弄清楚发生了什么。

答案 7 :(得分:2)

我使用的是以前的版本 build-tools 25.0.0

似乎 Eclipse 不希望使用较新的版本。虽然 Android Studio 可以毫无问题地识别它们。

答案 8 :(得分:1)

我在日食中遇到同样的问题。 我是副本" lib"来自" F:\ Androidsdk \ build-tools \ 19.1.0 \" 的文件夹。 将此文件夹粘贴到" F:\ eclipsesdk \ build-tools \ 27.0.2 \" 中。 删除" lib64"来自" \ build-tools \ 27.0.2 \" 的文件夹。 意味着你有副本" lib"旧的build-tools版本的文件夹并粘贴到 最新的build-tools版本文件夹。

答案 9 :(得分:1)

我有同样的错误。

在Android SDK Manager中,我卸载了所有

Android SDK Build-Tools.

然后我只安装了

Android SDK Build-Tool Version 25.0.3.

在此之后,我可以构建我的应用程序。

答案 10 :(得分:1)

首先运行android SDk管理器 下载android SDK构建工具25.0.3

打开project.properties文件并添加此行

(sdk.buildtools=25.0.3)

最后一次重启Eclipse

答案 11 :(得分:0)

将dx.jar从25.0.3复制到26.0.2 lib目录。

答案 12 :(得分:0)

在eclipse首选项中 - > java - > installedJREs 添加x86安装的Java jre路径版本并选择它 然后重启eclipse

答案 13 :(得分:0)

我在使用Microsoft Visual Studio 2017构建具有Xamarin Android项目的Xamarin Forms Solution时遇到了这种情况。

错误为无法访问jar文件C:\ Program Files(x86)\ Android \ android-sdk \ build-tools \ 25.0.3 \ lib \ dx.jar

在确认所需文件确实不存在之后,我要做的是打开Android SDK和工具窗口,转到工具标签,展开“ Android SDK构建工具”节点,取消选中“ Android SDK构建-工具25.0.3',应用了更改。

这将卸载此构建工具。

然后,我检查并应用了它。重新安装了所有必需的文件。

然后构建成功。

Android SDKs and Tools Window

答案 14 :(得分:-1)

我遇到了同样的问题(使用Eclipse 4.3-Kepler)。解决方案是打开SDK管理器,卸载“ Android SDK Build-tools [rev。28]”(或高于版本25的任何使用的人),安装“ Android SDK Build-tools” rev。 24.0.3(就我而言,否则我相信版本25也应该起作用)并重新启动Eclipse。就我而言,这项工作就完成了。

问题是,最新的Android SDK构建工具不适用于旧版本的Eclipse(或者至少这是我的理解)。

希望有帮助!

答案 15 :(得分:-3)

这可能会有所帮助。the third answer

build.gradle

中添加此内容
buildToolsVersion "25.0.2"