错误:执行失败的任务“:应用程序:transformClassesWithDexForDebug”错

2019-05-11 00:07发布

错误

错误:执行失败的任务“:应用程序:transformClassesWithDexForDebug”。 com.android.build.transform.api.TransformException:com.android.ide.common.process.ProcessException:org.gradle.process.internal.ExecException:进程 '命令'/ usr / lib中/ JVM / JAVA -8-预言/ bin中/ JAVA“”完成与非零退出值1

我的应用程序文件的gradle:

apply plugin: 'com.android.application'
apply plugin: 'com.google.gms.google-services'

android {
    compileSdkVersion 23
    buildToolsVersion "23.0.1"
    defaultConfig {
        applicationId 'Hidden application ID'
        minSdkVersion 15
        targetSdkVersion 23
        versionCode 1
        versionName "1.0"
        multiDexEnabled true
    }
    buildTypes {
        debug {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
        release {
            minifyEnabled true
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
    lintOptions {
        disable 'InvalidPackage'
    }
    packagingOptions {
        exclude 'META-INF/services/javax.annotation.processing.Processor'
    }
    productFlavors {
    }
}

repositories {
    mavenCentral()
}

dependencies {
    compile fileTree(include: ['*.jar'], dir: 'libs')
    compile 'com.android.support:multidex:1.0.1'
    compile 'com.android.support:appcompat-v7:23.1.1'
    compile 'com.android.support:design:23.1.1'
    compile 'com.android.support:cardview-v7:23.1.1'
    compile 'com.jakewharton:butterknife:7.0.1'
    compile 'com.mcxiaoke.volley:library-aar:1.0.0'
    compile 'com.google.android.gms:play-services:8.1.0'
    compile 'com.facebook.android:facebook-android-sdk:4.7.0'
    compile 'com.googlecode.libphonenumber:libphonenumber:7.2.1'
    compile 'com.getbase:floatingactionbutton:1.10.1'
    compile 'com.android.support:preference-v7:23.1.1'
}

在调试,如果我设置minifyEnabled为true,然后再编译。 然而,我就不能调试应用程序。

我检查这个其他问题: 执行失败的任务“:应用程序:transformClassesWithDexForDebug”,而谷歌实现登录Android版 ,但只有一个答案,并实施它不遗憾的是解决问题。

据我所知,该错误是由于增加了太多摇篮依赖造成的,但我可能是错的(我真的希望,因为所有这些包是真正重要的是错误的!)。

请帮我解决这个错误。 非常感谢!

Answer 1:

只要正确谷歌播放服务的依赖关系:

要包括项目中的所有播放服务。 只有添加这些你想要的。

例如,如果你只使用地图和G +登入,比的变化

 compile 'com.google.android.gms:play-services:8.1.0'

compile 'com.google.android.gms:play-services-maps:8.1.0'
compile 'com.google.android.gms:play-services-plus:8.1.0'

从文档:

在谷歌之前的6.5播放服务的版本,你必须的API的整个包编译到您的应用程序。 在某些情况下,这样做变得更加困难,以保持在您的应用程序(包括框架API,库方法,以及你自己的代码)下65536极限的方法数。

从6.5版本,你可以选择,而不是谷歌编译播放服务API为您的应用程序。 例如,只包括谷歌飞度和Android Wear的API,替换下面的行中您的build.gradle文件:
编译“com.google.android.gms:播放服务:8.3.0”
这些线路:

编译“com.google.android.gms:播放服务的健身:8.3.0”
编译“com.google.android.gms:播放服务耐磨:8.3.0”

整个名单可以在这里找到 。



Answer 2:

尝试

dexOptions {
    javaMaxHeapSize "4g"
    preDexLibraries = false
}

我不知道原因。 趣谈preDexLibraries : https://sites.google.com/a/android.com/tools/tech-docs/new-build-system/tips

据@ lgdroid57:

下面的资源将有助于解释一下这个代码:链接( http://google.github.io/android-gradle-dsl/current/com.android.build.gradle.internal.dsl.DexOptions.html )房产| 说明javaMaxHeapSize | 调用DX时,设置-JXmx *值。 格式应遵循1024M模式。 preDexLibraries | 是否预DEX库。 这可以提高增量编译,但干净的版本可能会比较慢。



Answer 3:

尝试添加multiDexEnabled true到你的应用build.gradle文件。

  defaultConfig {
    multiDexEnabled true
}


Answer 4:

这是关于Multidex问题。 你可以尝试删除一些罐子,或者你可以尝试这样的: http://developer.android.com/tools/building/multidex.html#mdex-gradle中应用的build.gradle:

    defaultConfig {
        ...
        minSdkVersion 14
        targetSdkVersion 21
        ...

        // Enabling multidex support.
        multiDexEnabled true
    }
dependencies {
  compile 'com.android.support:multidex:1.0.0'
}

在您的清单:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.android.multidex.myapplication">
    <application
        ...
        android:name="android.support.multidex.MultiDexApplication">
        ...
    </application>
</manifest>


Answer 5:

添加multiDexEnabled truedefault config filebuild.gradle这样

    defaultConfig {
        multiDexEnabled true
       }


Answer 6:

为我工作的解决方案为个人:

build.gradle

defaultConfig {
        multiDexEnabled true
    }

 dexOptions {
        javaMaxHeapSize "4g"
    }


Answer 7:

我的回答是有点老,但我唯一的解决办法是将multiDexEnabled选项defaultConfig这样的:

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

如果这不适合你尝试添加这段代码:

    configurations.all {
    resolutionStrategy.eachDependency { DependencyResolveDetails details ->
        def requested = details.requested
        if (requested.group == 'com.android.support') {
            if (!requested.name.startsWith("multidex")) {
                details.useVersion '26.1.0'
            }
        }
    }
}

我的错误是有关与不同的库版本中的问题并且这使的伎俩。

我希望这可以帮助别人:)



Answer 8:

请确保您不使用谷歌服务的两个版本。

对于具有例如:

compile 'com.google.firebase:firebase-messaging:9.8.0'

compile 'com.google.firebase:firebase-ads:10.0.0'


Answer 9:

我得到这个问题的时候,我从1.2.3版本的摇篮插件更新到1.5.0由于Android工作室建议。 在它的网页 ,1.5.0似乎是一个测试版本。

老实说,我不知道1.5.0版本有什么优点,但我宁愿等待,直到有一个稳定的版本。

当然,要回1.2.3解决了这个问题。



Answer 10:

可能的帮助

尝试作为绝对的最后手段用尽所有其他选项之后

我删除了所有记忆棒(RAM),但一个。 我现在有更少的内存,但它的再次合作。 我不能假装知道为什么构建过程总是发现已损坏的内存,或者如果这是100%的根本原因 - 在其他方面的系统运行得很好。 也许这是值得尝试,最好的运气。



Answer 11:

对我来说,关闭所有其他Android Studio的解决了这个问题。

我关闭2我开过的时候,我得到的错误3个Android的工作室,之后我没有得到任何错误。

无需添加与multiDex任何代码!



Answer 12:

无需MULTITEX。 对于“老字号”工程Android Studio中打开2.1它是不断变化的,从1.5.0 gradle这个插件版本2.1.0来为我固定的问题。

buildscript {
    dependencies {
        classpath 'com.android.tools.build:gradle:2.1.0'
    }
}


Answer 13:

我解决了它! 它的配置和更新的集合。 添加这些变量,他们适合的build.gradle

android {
packagingOptions {
    exclude 'META-INF/ASL2.0'
    exclude 'META-INF/LICENSE'
    exclude 'META-INF/NOTICE'
}
dexOptions {
    javaMaxHeapSize "4g"
}
defaultConfig {
    multiDexEnabled true
}
compileOptions {
    sourceCompatibility JavaVersion.VERSION_1_7
    targetCompatibility JavaVersion.VERSION_1_7
}
}

然后更新到Java 8 http://tecadmin.net/install-oracle-java-8-jdk-8-ubuntu-via-ppa/一切都会迎刃而解! 这是因为的buildTools更新和新的Android工作室。 闲来无事就会失败。



Answer 14:

通过改变

编译“com.google.android.gms:播放服务:8.1.0”

只有所需的文件,这个问题是可以解决的,因为在日的build.gradle文件超过文件的产生这个问题。



Answer 15:

走进建设 - >干净,然后再次运行你的应用程序



Answer 16:

走进建设 - >

清理项目 - >

运行项目:已完成

工作在Android 5.1,我



Answer 17:

我有这个问题时,我委托我的编译任务到谷歌计算引擎通过SSH。 这个问题的本质是一个内存错误,由崩溃日志指示; 特别是当运行的Java虚拟内存的构建过程中一起工作是抛出。

重要提示: 当gradle这个崩溃,由于此内存错误,gradle这个守护进程保持长时间运行后,你的编译任务已经失败。 任何再试图建立再次使用gradle这个会分配一个新的gradle这个守护进程。 必须确保你正确处理使用任何崩溃的情况下的 gradlew --stop

hs_error_pid崩溃日志指示以下解决方法:

# There is insufficient memory for the Java Runtime Environment to continue.
# Possible reasons:
#   The system is out of physical RAM or swap space
#   In 32 bit mode, the process size limit was hit
# Possible solutions:
#   Reduce memory load on the system
#   Increase physical memory or swap space
#   Check if swap backing store is full
#   Use 64 bit Java on a 64 bit OS
#   Decrease Java heap size (-Xmx/-Xms)
#   Decrease number of Java threads
#   Decrease Java thread stack sizes (-Xss)
#   Set larger code cache with -XX:ReservedCodeCacheSize=

我发现后, 增加了虚拟机的运行时资源 ,这个问题就解决了。



Answer 18:

我有一个类似的错误。 我刚好切换目录固定它。 从我的git仓库再次克隆我的项目,将它导入到Android的工作室,并建立它。 好像构建项目可能得到损坏时由Android Studio生成的目录/文件之一。 删除所有Android工作室在您的项目生成的文件或做什么我做可以解决这个问题。 希望这可以帮助。



Answer 19:

所有谁曾面临这个问题/将面临它在未来:

单击生成菜单 - >选择构建变量 - >还原到“调试”

Outcomment上调试的模块:应用程序/ *调试{调试的真实} * /

去盖菜单 - >生成APK签署 - > ... - >构建它



Answer 20:

移动应用插件声明在文件的底部:

应用插件:“com.google.gms.google的服务”。



Answer 21:

显然,我通过组合添加以下内容Android清单的解决方案解决了这个问题:

<application
...
        android:name="android.support.multidex.MultiDexApplication" >
...
</application>

继到的build.gradle应用模块

android {
...

    dexOptions {
        javaMaxHeapSize "4g"
        preDexLibraries = false
    }
...
    defaultConfig {

        multiDexEnabled true

   }

}


Answer 22:

  1. 执行:科尔多瓦插件RM科尔多瓦 - 插件 - COMPAT --force
  2. 执行:科尔多瓦插件添加cordova-plugin-compat@1.2
  3. 变化:一个config.xml项目文件夹中使用“6.2.3”而不是“^ 6.2.3”,然后删除平台/ Android的文件夹,重新运行科尔多瓦准备Android和科尔多瓦构建Android


Answer 23:

只是删除这两个build文件夹中/android/android/app

并再次利用建立react-native run-android



Answer 24:

不要发疯我只是干净,然后再重建项目和错误不见了



Answer 25:

使用离子,我能使用命令来修复这个错误:“科尔多瓦干净”



Answer 26:

在Android设备上运行的离子项目时,我有这个错误,我通过删除和添加android平台的解决了这个问题:

ionic cordova platform remove android
ionic cordova platform add android


Answer 27:

如果java的8或以上使用,那么问题是我们使用的库是用java 8不兼容所以解决这个添加以下两行的build.gradle您的应用程序和所有子模块如果有的话。 (Android Studio中清楚地显示了如何在错误信息做到这一点)

targetCompatibility = '1.7' sourceCompatibility = '1.7'



文章来源: Error:Execution failed for task ':app:transformClassesWithDexForDebug'