【问题标题】:Unknown error: Unable to build: the file dx.jar was not loaded from the SDK folder未知错误:无法构建:未从 SDK 文件夹加载文件 dx.jar
【发布时间】:2023-03-21 15:15:02
【问题描述】:

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

[2017-03-24 15:34:41 - Dex Loader] Failed to load C:\Users\jaimemontoya\android-sdks\build-tools\26.0.0-preview\lib\dx.jar

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

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

这是我从 Android SDK 管理器看到的包配置:

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

【问题讨论】:

  • 如果您看到我在问题中包含的最后一个屏幕截图,它会显示:“SDK 路径:C:\Users\jaimemontoya\android-sdks”。所以 C:\Users\jaimemontoya\android-sdks 绝对是我的 SDK 文件夹。它究竟在哪里试图找到 dx.jar 文件? C:\Users\jaimemontoya\android-sdks\dx.jar 对我来说当然没有意义,但我也试过了,显然它也不起作用。
  • 如果我重命名我的文件夹,而不是 C:\Users\jaimemontoya\android-sdks\build-tools\26.0.0-preview\lib\dx.jar 我有 C:\Users\ jaimemontoya\android-sdks\build-tools\26.0.0-preview\lib2222222\dx.jar,我看到相同的错误消息:“[2017-03-24 16:30:03 - CouponClub] 未知错误:无法构建: dx.jar 文件没有从 SDK 文件夹中加载!”所以加载C:\Users\jaimemontoya\android-sdks\build-tools\26.0.0-preview\lib\dx.jar 失败,不知道为什么。
  • 它似乎试图在这里找到它:C:\Users\jaimemontoya\android-sdks\build-tools\26.0.0-preview\lib\dx.jar。我试图弄清楚为什么它无法加载它。

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


【解决方案1】:

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

修复就是复制

android-sdk/build-tools/25.0.3/lib

到文件夹

android-sdk/build-tools/26.0.1/lib

现在一切都很好!

【讨论】:

  • 我也在使用 Android Studio 进行其他项目。我会遇到这些问题吗?我的意思是,弄乱这些文件不是问题吗?
  • 这对我没有帮助。
【解决方案2】:

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 窗口放到另一个窗口。

全部完成。现在您可以在 Eclipse ADT 中使用新的dx.jar

这个解决方案最好替换dx.jar,因为你可以使用新版本的dx.jar

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

【讨论】:

  • @itzo 那你做错了。所描述的步骤允许我继续使用 Eclipse,即使是构建工具28.0.3。这也适用于28.0.2
  • 谢谢,在 Android 项目中仍然使用 Eclipse ADT 的绝佳方式,它完美运行!
  • 完美,在我的工作中还在使用Eclipse,干得好
【解决方案3】:

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

【讨论】:

  • 感谢您分享您的答案/解决方案 Vancent。我最终使用了 Android Studio 并放弃了 Eclipse,但如果我再次尝试 Eclipse 并遇到同样的问题,我会尝试你的解决方案。希望其他人也可以尝试并确认它是否适合他们。
  • 我删除了 26 个 rc2 Build-tools,但我的问题仍然存在。
  • @IsharaAmarasekera 你有哪个版本的构建工具?而且它似乎只存在于Eclipse中,根据android官方的说法,Eclipse似乎不支持最新版本。
  • @Vancent 这个问题在 26.0.3 中发生在我身上,当我删除它以查看是否修复它时,错误分别移至 26.0.2 和 26.0.1。现在我拥有的最大值是 25.0.3,问题不再存在。正如您所提到的,Eclipse 可能不支持最新版本。
【解决方案4】:

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

我最终安装了这个 Android SDK:

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

我的 App 终于编译成功了。

【讨论】:

  • 在另一台计算机上,即使按照此答案中的步骤操作,它也无法正常工作。直到我使用“Android SDK Manager”卸载了“工具”和“工具(预览频道)”文件夹中的所有内容,然后只安装了对应于“Rev. 25.2.5、25.0.4 和19.1",错误已修复,它允许我编译。
【解决方案5】:

一起使用 Eclipse 和 Android Studio

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

【讨论】:

    【解决方案6】:

    在解决这个错误几个小时后,我发现了这个谜题的一些线索,你可能会觉得有用。

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

    !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。
    -我的项目正在使用 Android 4.2.2 (API 17) 和 Android (API 10),所以问题似乎与我的项目无关。我相信那里有聪明的人会弄清楚发生了什么。

    【讨论】:

      【解决方案7】:

      首先运行android SDK manager 下载 android SDK build-tools 25.0.3

      打开 project.properties 文件并添加这一行

      (sdk.buildtools=25.0.3)
      

      最后重启 Eclipse

      【讨论】:

        【解决方案8】:

        我也遇到了同样的问题,但是,我决定卸载 eclipse,然后删除整个文件夹...您可以通过单击帮助来做到这一点(在 eclipse 上)--->然后“关于 eclipse”- --> 然后是“安装详细信息”并卸载,删除整个文件夹后,我从 SDK 下载管理器重新下载了 eclipse 和所有 SDK,它又开始为我工作了。希望一切顺利。

        【讨论】:

        • 我在另一台电脑上试过了,我得到了完全相同的错误。
        • 但是您知道为什么卸载然后再次安装 Eclipse 会为您解决问题吗?我在另一台计算机上安装了整个环境,并且一直遇到同样的问题。
        【解决方案9】:

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

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

        【讨论】:

        • 我很久以前就放弃了 Eclipse,一直在使用 Android Studio。我使用 Eclipse 只是为了将代码从 Eclipse 迁移到 Android Studio。在 2018 年使用已弃用的 Eclipse 插件进行 Android 开发就像尝试使用 Windows XP。我知道多年来它是一个非常成功的操作系统,但它是官方不支持和弃用的。您必须尽一切努力尝试迁移到 Android Studio。它是官方的,Eclipse 不推荐用于 Android 开发,谷歌希望开发人员使用 Android Studio。他们只支持 Android Studio。
        【解决方案10】:

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

        【讨论】:

          【解决方案11】:

          我遇到了同样的错误。

          在 Android SDK Manager 中我卸载了所有

          Android SDK Build-Tools.
          

          然后我只安装了

          Android SDK Build-Tool Version 25.0.3.
          

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

          【讨论】:

            【解决方案12】:

            我在 Eclipse 中遇到了同样的问题。 我从 "F:\Androidsdk\build-tools\19.1.0\" 复制了“lib”文件夹。 将此文件夹粘贴到 "F:\eclipsesdk\build-tools\27.0.2\" 中。 从 "\build-tools\27.0.2\" 中删除“lib64”文件夹。 意味着您已从旧的构建工具版本复制“lib”文件夹并粘贴到 最新的构建工具版本文件夹。

            【讨论】:

            • 当经理已经为你做事时,手工做这件事听起来不是一个聪明的主意。
            • 如果你开始搞乱经理们自己做的事情。您可能最终不得不一直手动执行经理自动执行的操作。例如,管理人员可能会跟踪文件的校验和,并且一旦您更改他们安装或删除的内容……您最终会遇到上述错误。某些东西丢失或不在它应该在的地方,并且您使用的工具无法真正完成它的工作。让事情顺利进行。
            【解决方案13】:

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

            【讨论】:

              【解决方案14】:

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

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

              在确认所需文件实际上不存在后,我所做的是打开 Android SDKs and Tools 窗口,转到工具选项卡,展开“Android SDK Build tools”节点,取消选中“Android SDK Build-工具 25.0.3',应用了更改。

              这会卸载此构建工具。

              之后,我检查并申请了它。这让它重新安装了所有必要的文件。

              然后构建成功。

              【讨论】:

                【解决方案15】:

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

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

                希望对你有帮助!

                【讨论】:

                  【解决方案16】:

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

                  将此添加到您的build.gradle

                  buildToolsVersion "25.0.2"
                  

                  【讨论】:

                  • 我们讨论的是 Eclipse 而不是 android studio。
                  猜你喜欢
                  • 2012-06-26
                  • 1970-01-01
                  • 2011-07-10
                  • 2012-10-13
                  • 2023-04-11
                  • 2014-03-08
                  • 2023-03-31
                  • 2021-09-10
                  • 1970-01-01
                  相关资源
                  最近更新 更多