【问题标题】:Getting error 'Error:Gradle: Execution failed for task ':app:transformClassesWithDexForDebug'.'出现错误'错误:Gradle:任务':app:transformClassesWithDexForDebug'的执行失败。'
【发布时间】:2017-07-12 05:43:41
【问题描述】:

信息:Gradle:执行任务:[:app:assembleDebug, :app:assembleDebugUnitTest] 信息:12-07-2017 10:25 - 编译完成,9s 703ms 内出现 34 个错误和 0 个警告

错误:Gradle:处理“javax/xml/XMLConstants.class”时出现问题:

错误:Gradle:不明智或错误地使用核心类(java.* 或 javax.*)

错误:Gradle:未构建核心库时。

错误:Gradle:这通常是由于无意中包含了核心库文件

Error:Gradle: 在你应用程序的项目中,使用 IDE 时(例如

错误:Gradle:Eclipse)。如果你确定你不是故意定义一个

Error:Gradle: core class,那么这是最可能的解释

错误:Gradle:继续。

错误:Gradle:但是,您实际上可能正在尝试在核心中定义一个类

Error:Gradle: 命名空间,例如你可能取的来源,

错误:Gradle:来自非 Android 虚拟机项目。这将最

错误:Gradle:肯定不行。至少,它会危害到

错误:Gradle:您的应用与平台未来版本的兼容性。

错误:Gradle:它的合法性也经常受到质疑。

Error:Gradle: 如果你真的打算构建一个核心库——这只是

错误:Gradle:适合作为创建完整虚拟机的一部分

Error:Gradle: 分发,而不是编译应用程序——然后使用

错误:Gradle:使用“--core-library”选项来禁止显示此错误消息。

错误:Gradle:如果您继续使用“--core-library”但实际上是

错误:Gradle:构建应用程序,然后预先警告您的应用程序

Error:Gradle: 在某些时候仍然无法构建或运行。请是

错误:Gradle:为愤怒的客户做好准备,例如,他们发现您的

错误:Gradle:应用程序在升级操作后停止运行

错误:Gradle:系统。你会为这个问题负责。

错误:Gradle:如果您合法地使用了一些恰好在 a 中的代码

错误:Gradle:核心包,那么您拥有的最简单安全的替代方案就是

错误:Gradle:重新打包该代码。也就是把有问题的类移到

错误:Gradle:你自己的包命名空间。这意味着他们永远不会在

错误:Gradle:与核心系统类冲突。 JarJar 是一个可以提供帮助的工具

错误:Gradle:你在这方面的努力。如果你发现你不能这样做,那么

Error:Gradle: 这表明你最终会走上这条路

错误:Gradle:导致痛苦、痛苦、悲伤和悲叹。

错误:Gradle:1 个错误;中止

错误:Gradle:任务 ':app:transformClassesWithDexForDebug' 执行失败。

com.android.build.api.transform.TransformException:

java.lang.RuntimeException:com.android.ide.common.process.ProcessException:

java.util.concurrent.ExecutionException:

com.android.ide.common.process.ProcessException: dex 进程返回码 1


build.gradle:

应用插件:'com.android.application'

机器人{ compileSdkVersion 26

buildToolsVersion "26.0.0"

defaultConfig {
    applicationId "com.example.rakeshkirola.appiumframework"
    minSdkVersion 24
    minSdkVersion 24
    targetSdkVersion 26
    versionCode 1
    versionName "1.0"
    testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
buildTypes {
    release {
        minifyEnabled false
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
    }
}

}

依赖{

compile fileTree(include: ['*.jar'], dir: 'libs')

androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2',

{

    exclude group: 'com.android.support', module: 'support-annotations'

})

compile 'com.android.support:appcompat-v7:26.+'

compile 'com.android.support.constraint:constraint-layout:1.0.2'

compile 'com.android.support:design:26.+'

testCompile 'junit:junit:4.12'

// https://mvnrepository.com/artifact/io.appium/java-client

compile 'io.appium:java-client:4.1.2'

testCompile 'org.assertj:assertj-core:2.0.0'

testCompile 'org.testng:testng:6.9.10'

compile files('libs/httpclient-4.4.1.jar')

compile files('libs/commons-logging-1.2.jar')

compile files('libs/httpcore-4.4.4.jar')

}


Android Studio 版本:2.3.3

【问题讨论】:

  • 请添加格式化的gradle代码
  • @AmitKumar:完成
  • 尝试清理你的项目
  • @AmitKumar:我已经做到了,但同样的问题。

标签: android gradle


【解决方案1】:

添加这个解决了我的问题。试试吧。

android {
...
defaultConfig {
    ...
    multiDexEnabled true
    }
}

【讨论】:

  • :感谢您的建议。但我之前也尝试过。遇到与上述相同的错误。
【解决方案2】:

在你的 defaultConfig 块中,添加以下选项。

defaultConfig {
    applicationId "com.example.rakeshkirola.appiumframework"
    minSdkVersion 24
    minSdkVersion 24
    targetSdkVersion 26
    versionCode 1
    versionName "1.0"
    testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    multiDexEnabled true
}

【讨论】:

    【解决方案3】:

    为了启用multidex,在你的build.greadle(app模块)中添加multiDexEnabled true并在依赖项中插入compile 'com.android.support:multidex:1.0.1'

    android{
      ...
      defaultConfig {
            ...
            // Enabling multidex support.
            multiDexEnabled true
        }
        buildTypes {
            release {
                minifyEnabled false
                proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
            }
        }
        dexOptions {
            javaMaxHeapSize "4g"
            preDexLibraries = false
        }
    
    }
    dependencies {
      compile 'com.android.support:multidex:1.0.1'
    }

    【讨论】:

    • 感谢您的建议,但遇到了同样的错误。
    • 尝试只编译 'com.android.support:multidex:1.0.1' 可能会起作用
    • 错误:(42, 0) 无法在 org.gradle.api.Project 类型的项目 ':app' 上找到参数 [build_49u93nse19qbhckt8trcffqw4$_run_closure3@2bf1cc3e] 的方法 dexOptions()。 打开文件
    猜你喜欢
    • 1970-01-01
    • 2016-02-16
    • 1970-01-01
    • 2017-09-01
    • 2023-03-22
    • 1970-01-01
    • 1970-01-01
    • 2016-02-28
    相关资源
    最近更新 更多