缺少dx.jar导致构建失败

4
每当我尝试构建项目时,都会显示以下错误:
Error:Execution failed for task ':app:transformClassesWithDexForDebug'>  com.android.build.api.transform.TransformException: java.lang.RuntimeException: com.android.ide.common.process.ProcessException: java.util.concurrent.ExecutionException: java.lang.IllegalStateException: dx.jar is missing

我最近更新了我的SDK,并在此之后卸载了Android Studio,取消选中SDK,并下载了不带SDK的IDE(只是因为我想更新Studio),然后让它使用现有的SDK。

请帮忙!我还没有找到任何可行的解决方案。


1
你尝试过 Build -> Clean Project 吗? - dione llorera
是的 @dionellorera - Urja Pawar
1
更新 SDK 平台和构建工具。 - dione llorera
没有更新选项,我已经安装了最新的版本。 - Urja Pawar
5个回答

3

您是否也更新了 build.gradle 文件?

示例:

android {
    compileSdkVersion 24 // this is important
    buildToolsVersion "24" // this also

    defaultConfig {
        applicationId "org.bamboomy.yarne"
        minSdkVersion 15
        targetSdkVersion 24 // recommended
        versionCode 1
        versionName "1.0"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    testCompile 'junit:junit:4.12'
    compile 'com.android.support:appcompat-v7:24.0.0' // and don't forget this
    compile 'com.android.support:design:24.0.0' // and this
}

我不是专家,但似乎在

C:\Users\myusername\AppData\Local\Android\sdk\build-tools\23.0.2

目录中没有dx.jar文件(只有一个dx.bat)

从23.0.3版本开始,似乎有一个

C:\Users\myusername\AppData\Local\Android\sdk\build-tools\23.0.3\lib

存在一个包含dx.jar文件的文件夹

1

删除SDK平台工具和构建工具,然后重新安装它们对我有用。


0
这与您在 build.gradle 中的 buildToolsVersion 配置有关。
转到 SDK 路径,找到 build-tools 目录并搜索 dx.jar 文件。每个具有 dx.jar 文件的文件夹都可能是您的 buildToolsVersion。
如果不存在任何 dx.jar,请使用 SdkManager 下载一个 build-tools。

0
当我将buildToolsVersion设置为34版本时,我需要将dx.jar从/build-tools/33.0.0/lib/dx.jar复制到/build-tools/34.0.0/lib/dx.jar。

-1
将此代码添加到您的 build.gradle 文件中。
android {
...
defaultConfig {
    ...
    multiDexEnabled true
    }
}

也可以查看这个答案


我认为,我提到的链接应该可以使用,你尝试过那个链接中的答案了吗?@UrjaPawar - Amit Vaghela
错误与dex方法限制无关,因此此答案不适用。 - JesusFreke
你有检查我回答中提到的链接里的所有答案吗?@UrjaPawar - Amit Vaghela

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