Android-错误:任务':app:transformClassesWithDexForRelease'的执行失败

Posted

技术标签:

【中文标题】Android-错误:任务\':app:transformClassesWithDexForRelease\'的执行失败【英文标题】:Android- Error:Execution failed for task ':app:transformClassesWithDexForRelease'Android-错误:任务':app:transformClassesWithDexForRelease'的执行失败 【发布时间】:2016-06-23 17:58:39 【问题描述】:

问题是当我切换到debug 模式时我能够运行我的应用程序,但是当我切换到release 模式时它会失败。

例外:

**FAILURE: Build failed with an exception.**
> Execution failed for task ':app:transformClassesWithDexForRelease'.
> com.android.build.api.transform.TransformException: com.android.ide.common.process.ProcessException: java.util.concurrent.ExecutionException: com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process 'command '/Library/Java/JavaVirtualMachines/jdk1.8.0_65.jdk/Contents/Home/bin/java'' finished with non-zero exit value 1

当我使用 stacktrace 运行 gradle build 命令时,这就是我得到的

./gradlew app:transformClassesWithDexForRelease --stacktrace

> com.android.build.api.transform.TransformException: com.android.ide.common.process.ProcessException: java.util.concurrent.ExecutionException: com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process 'command '/Library/Java/JavaVirtualMachines/jdk1.8.0_73.jdk/Contents/Home/bin/java'' finished with non-zero exit value 1

*Exception is:*

>org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':app:transformClassesWithDexForRelease'.
            at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:69)
            at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:46)
            at org.gradle.api.internal.tasks.execution.PostExecutionAnalysisTaskExecuter.execute(PostExecutionAnalysisTaskExecuter.java:35)
            at org.gradle.api.internal.tasks.execution.SkipUpToDateTaskExecuter.execute(SkipUpToDateTaskExecuter.java:64)
            at org.gradle.api.internal.tasks.execution.ValidatingTaskExecuter.execute(ValidatingTaskExecuter.java:58)
            at org.gradle.api.internal.tasks.execution.SkipEmptySourceFilesTaskExecuter.execute(SkipEmptySourceFilesTaskExecuter.java:52)
            at org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:52)
            at org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:53)
            at org.gradle.api.internal.tasks.execution.ExecuteAtMostOnceTaskExecuter.execute(ExecuteAtMostOnceTaskExecuter.java:43)
            at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter$EventFiringTaskWorker.execute(DefaultTaskGraphExecuter.java:203)
            at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter$EventFiringTaskWorker.execute(DefaultTaskGraphExecuter.java:185)
            at org.gradle.execution.taskgraph.AbstractTaskPlanExecutor$TaskExecutorWorker.processTask(AbstractTaskPlanExecutor.java:66)
            at org.gradle.execution.taskgraph.AbstractTaskPlanExecutor$TaskExecutorWorker.run(AbstractTaskPlanExecutor.java:50)
            at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor.process(DefaultTaskPlanExecutor.java:25)
            at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter.execute(DefaultTaskGraphExecuter.java:110)
            at org.gradle.execution.SelectedTaskExecutionAction.execute(SelectedTaskExecutionAction.java:37)
            at org.gradle.execution.DefaultBuildExecuter.execute(DefaultBuildExecuter.java:37)
            at org.gradle.execution.DefaultBuildExecuter.access$000(DefaultBuildExecuter.java:23)
            at org.gradle.execution.DefaultBuildExecuter$1.proceed(DefaultBuildExecuter.java:43)
            at org.gradle.execution.DryRunBuildExecutionAction.execute(DryRunBuildExecutionAction.java:32)
            at org.gradle.execution.DefaultBuildExecuter.execute(DefaultBuildExecuter.java:37)
            at org.gradle.execution.DefaultBuildExecuter.execute(DefaultBuildExecuter.java:30)
            at org.gradle.initialization.DefaultGradleLauncher$4.run(DefaultGradleLauncher.java:154)
            at org.gradle.internal.Factories$1.create(Factories.java:22)
            at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:90)
            at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:52)
            at org.gradle.initialization.DefaultGradleLauncher.doBuildStages(DefaultGradleLauncher.java:151)
            at org.gradle.initialization.DefaultGradleLauncher.access$200(DefaultGradleLauncher.java:32)
            at org.gradle.initialization.DefaultGradleLauncher$1.create(DefaultGradleLauncher.java:99)
            at org.gradle.initialization.DefaultGradleLauncher$1.create(DefaultGradleLauncher.java:93)
            at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:90)
            at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:62)
            at org.gradle.initialization.DefaultGradleLauncher.doBuild(DefaultGradleLauncher.java:93)
            at org.gradle.initialization.DefaultGradleLauncher.run(DefaultGradleLauncher.java:82)
            at org.gradle.launcher.exec.InProcessBuildActionExecuter$DefaultBuildController.run(InProcessBuildActionExecuter.java:94)
            at org.gradle.tooling.internal.provider.ExecuteBuildActionRunner.run(ExecuteBuildActionRunner.java:28)
            at org.gradle.launcher.exec.ChainingBuildActionRunner.run(ChainingBuildActionRunner.java:35)
            at org.gradle.launcher.exec.InProcessBuildActionExecuter.execute(InProcessBuildActionExecuter.java:43)
            at org.gradle.launcher.exec.InProcessBuildActionExecuter.execute(InProcessBuildActionExecuter.java:28)
            at org.gradle.launcher.exec.ContinuousBuildActionExecuter.execute(ContinuousBuildActionExecuter.java:78)
            at org.gradle.launcher.exec.ContinuousBuildActionExecuter.execute(ContinuousBuildActionExecuter.java:48)
            at org.gradle.launcher.daemon.server.exec.ExecuteBuild.doBuild(ExecuteBuild.java:52)
            at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:36)
            at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
            at org.gradle.launcher.daemon.server.exec.WatchForDisconnection.execute(WatchForDisconnection.java:37)
            at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
            at org.gradle.launcher.daemon.server.exec.ResetDeprecationLogger.execute(ResetDeprecationLogger.java:26)
            at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
            at org.gradle.launcher.daemon.server.exec.RequestStopIfSingleUsedDaemon.execute(RequestStopIfSingleUsedDaemon.java:34)
            at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
            at org.gradle.launcher.daemon.server.exec.ForwardClientInput$2.call(ForwardClientInput.java:74)
            at org.gradle.launcher.daemon.server.exec.ForwardClientInput$2.call(ForwardClientInput.java:72)
            at org.gradle.util.Swapper.swap(Swapper.java:38)
            at org.gradle.launcher.daemon.server.exec.ForwardClientInput.execute(ForwardClientInput.java:72)
            at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
            at org.gradle.launcher.daemon.server.health.DaemonHealthTracker.execute(DaemonHealthTracker.java:47)
            at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
            at org.gradle.launcher.daemon.server.exec.LogToClient.doBuild(LogToClient.java:66)
            at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:36)
            at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
            at org.gradle.launcher.daemon.server.exec.EstablishBuildEnvironment.doBuild(EstablishBuildEnvironment.java:72)
            at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:36)
            at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
            at org.gradle.launcher.daemon.server.health.HintGCAfterBuild.execute(HintGCAfterBuild.java:41)
            at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
            at org.gradle.launcher.daemon.server.exec.StartBuildOrRespondWithBusy$1.run(StartBuildOrRespondWithBusy.java:50)
            at org.gradle.launcher.daemon.server.DaemonStateCoordinator$1.run(DaemonStateCoordinator.java:246)
            at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:54)
            at org.gradle.internal.concurrent.StoppableExecutorImpl$1.run(StoppableExecutorImpl.java:40)
    Caused by: java.lang.RuntimeException: com.android.build.api.transform.TransformException: com.android.ide.common.process.ProcessException: java.util.concurrent.ExecutionException: com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process 'command '/Library/Java/JavaVirtualMachines/jdk1.8.0_73.jdk/Contents/Home/bin/java'' finished with non-zero exit value 1
            at com.android.builder.profile.Recorder$Block.handleException(Recorder.java:54)
            at com.android.builder.profile.ThreadRecorder$1.record(ThreadRecorder.java:57)
            at com.android.builder.profile.ThreadRecorder$1.record(ThreadRecorder.java:47)
            at com.android.build.gradle.internal.pipeline.TransformTask.transform(TransformTask.java:173)
            at org.gradle.internal.reflect.JavaMethod.invoke(JavaMethod.java:75)
            at org.gradle.api.internal.project.taskfactory.AnnotationProcessingTaskFactory$IncrementalTaskAction.doExecute(AnnotationProcessingTaskFactory.java:244)
            at org.gradle.api.internal.project.taskfactory.AnnotationProcessingTaskFactory$StandardTaskAction.execute(AnnotationProcessingTaskFactory.java:220)
            at org.gradle.api.internal.project.taskfactory.AnnotationProcessingTaskFactory$IncrementalTaskAction.execute(AnnotationProcessingTaskFactory.java:231)
            at org.gradle.api.internal.project.taskfactory.AnnotationProcessingTaskFactory$StandardTaskAction.execute(AnnotationProcessingTaskFactory.java:209)
            at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeAction(ExecuteActionsTaskExecuter.java:80)
            at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:61)
            ... 68 more
    Caused by: com.android.build.api.transform.TransformException: com.android.ide.common.process.ProcessException: java.util.concurrent.ExecutionException: com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process 'command '/Library/Java/JavaVirtualMachines/jdk1.8.0_73.jdk/Contents/Home/bin/java'' finished with non-zero exit value 1
            at com.android.build.gradle.internal.transforms.DexTransform.transform(DexTransform.java:422)
            at com.android.build.gradle.internal.pipeline.TransformTask$3.call(TransformTask.java:178)
            at com.android.build.gradle.internal.pipeline.TransformTask$3.call(TransformTask.java:174)
            at com.android.builder.profile.ThreadRecorder$1.record(ThreadRecorder.java:55)
            ... 77 more
    Caused by: com.android.ide.common.process.ProcessException: java.util.concurrent.ExecutionException: com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process 'command '/Library/Java/JavaVirtualMachines/jdk1.8.0_73.jdk/Contents/Home/bin/java'' finished with non-zero exit value 1
            at com.android.builder.core.AndroidBuilder.runDexer(AndroidBuilder.java:1472)
            at com.android.builder.core.AndroidBuilder.convertByteCode(AndroidBuilder.java:1389)
            at com.android.build.gradle.internal.transforms.DexTransform.transform(DexTransform.java:250)
            ... 80 more
    Caused by: java.util.concurrent.ExecutionException: com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process 'command '/Library/Java/JavaVirtualMachines/jdk1.8.0_73.jdk/Contents/Home/bin/java'' finished with non-zero exit value 1
            at com.android.builder.core.AndroidBuilder.runDexer(AndroidBuilder.java:1456)
            ... 82 more
    Caused by: com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process 'command '/Library/Java/JavaVirtualMachines/jdk1.8.0_73.jdk/Contents/Home/bin/java'' finished with non-zero exit value 1
            at com.android.build.gradle.internal.process.GradleProcessResult.assertNormalExitValue(GradleProcessResult.java:43)
            at com.android.builder.core.AndroidBuilder$2.call(AndroidBuilder.java:1464)
            at com.android.builder.core.AndroidBuilder$2.call(AndroidBuilder.java:1456)
    Caused by: org.gradle.process.internal.ExecException: Process 'command '/Library/Java/JavaVirtualMachines/jdk1.8.0_73.jdk/Contents/Home/bin/java'' finished with non-zero exit value 1
            at org.gradle.process.internal.DefaultExecHandle$ExecResultImpl.assertNormalExitValue(DefaultExecHandle.java:367)
            at com.android.build.gradle.internal.process.GradleProcessResult.assertNormalExitValue(GradleProcessResult.java:41)
            ... 2 more

我正在使用

Android Studio 2.0 Beta 6 Java 版本:Java(TM) SE 运行时环境(内部版本 1.8.0_73-b02) Gradle 版本:com.android.tools.build:gradle:2.0.0-beta6 我启用了 Multidex

我的 build.gradle 文件

apply plugin: 'com.android.application'
apply plugin: 'com.getkeepsafe.dexcount'

android 

    def VERSION_CODE = 52
    def VERSION_NAME = "1.0"
    compileSdkVersion 23
    buildToolsVersion '23.0.2'

    defaultConfig 
        applicationId "com.example.app"
        manifestPlaceholders = [appName: "Personal App"]
        minSdkVersion 14
        targetSdkVersion 23
        renderscriptTargetApi 19
        renderscriptSupportModeEnabled true
        versionCode VERSION_CODE
        versionName VERSION_NAME

        // Enabling multidex support.
        multiDexEnabled true
    

    compileOptions 
        sourceCompatibility JavaVersion.VERSION_1_7
        targetCompatibility JavaVersion.VERSION_1_7
        encoding = 'UTF-8'
    

    signingConfigs 
        livekeystore 
            storeFile file('../key.jks')
            keyAlias 'livekeystore'
            keyPassword '123asd'
            storePassword '123asd'
        
    


    buildTypes 
        release 
            minifyEnabled true
            shrinkResources true
            zipAlignEnabled true
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
            signingConfig signingConfigs.burgerking

            manifestPlaceholders = [googleMapsKey: "@string/release_google_map_key", appNameSuffix: ""]
        

        debug 
            applicationIdSuffix '.dev'
            debuggable true
            minifyEnabled false
            shrinkResources false
            zipAlignEnabled false

            manifestPlaceholders = [googleMapsKey: "@string/debug_google_map_key", appNameSuffix: ' (Dev-' + VERSION_CODE + ')']

        
    

    dexOptions 
        incremental true
        javaMaxHeapSize "4g" // 2g should be also OK
    

    useLibrary 'org.apache.http.legacy'



repositories 
    maven  url 'https://mint.splunk.com/gradle/' 
    maven  url "http://dl.bintray.com/populov/maven" 
    mavenCentral()


buildscript 
    repositories 
        mavenCentral()
    

    dependencies 
        classpath 'com.getkeepsafe.dexcount:dexcount-gradle-plugin:0.4.2'
        classpath 'com.newrelic.agent.android:agent-gradle-plugin:4.244.0'
    



dependencies 
    compile 'com.google.code.gson:gson:2.4'
    compile 'com.android.support:appcompat-v7:23.2.0'
    compile 'com.android.support:recyclerview-v7:23.2.0'
    compile 'com.android.support:cardview-v7:23.2.0'
    compile 'com.android.support:design:23.2.0'
    compile 'com.android.support:multidex:1.0.1'
    compile 'com.google.android.gms:play-services-base:8.4.0'
    compile 'com.google.android.gms:play-services-location:8.4.0'
    compile 'com.google.android.gms:play-services-analytics:8.4.0'
    compile 'com.google.android.gms:play-services-maps:8.4.0'
    compile 'com.google.android.gms:play-services-ads:8.4.0'
    compile 'com.googlecode.libphonenumber:libphonenumber:7.0.5'
    compile 'com.facebook.android:facebook-android-sdk:4.1.1'
    compile 'de.greenrobot:eventbus:2.4.0'
    compile 'com.viewpagerindicator:library:2.4.1@aar'
    compile 'com.nineoldandroids:library:2.4.0'
    compile 'com.squareup.picasso:picasso:2.5.2'
    compile 'com.squareup:pollexor:2.0.2'
    compile 'com.makeramen:roundedimageview:2.1.0'
    compile 'com.mcxiaoke.volley:library:1.0.16@aar'
    compile files('libs/now-auth-api.jar')
    compile 'com.jakewharton:butterknife:5.1.2'
    compile 'com.github.ksoichiro:android-observablescrollview:1.2.0'
    compile 'io.card:android-sdk:5.3.0'
    compile 'com.appboy:android-sdk-ui:1.10.3'
    testCompile 'junit:junit:4.11'
    testCompile('org.mockito:mockito-core:1.9.5') 
        exclude group: 'org.hamcrest'
    
    testCompile('org.powermock:powermock-module-junit4:1.5') 
        exclude group: 'org.hamcrest'
    
    testCompile('org.powermock:powermock-api-mockito:1.6.2') 
        exclude group: 'org.hamcrest'
    

    compile 'me.grantland:autofittextview:0.2.1'


如果我从中删除minifyEnabled true,我似乎能够让我的发布版本正常工作。为什么会这样,有没有其他办法解决呢

【问题讨论】:

您可以发布您应用的 build.gradle 文件吗? @Harisewak 我已经更新了问题,请立即查看 是的@Sheraz 你是对的,将 minifyEnabled 切换为 false 可以解决问题。我在 doc 中读到:'您必须启用 minifyEnabled 才能打开代码收缩,然后使用 shrinkResources 才能打开资源收缩。如果您尚未使用 minifyEnabled,请确保在添加 shrinkResources 之前使其正常工作,因为您可能必须编辑您的 proguard-rules.pro 文件以确保您使用反射等访问的任何方法都列为保留规则文件' (tools.android.com/tech-docs/new-build-system/resource-shrinking)。看看是不是这样。 @Harisewak 如果我使用调试运行任务,它仍然无法解决问题,然后我收到此错误Uncaught translation error: com.android.dx.cf.code.SimException: com.android.dx.rop.cst.CstMethodRef cannot be cast to com.android.dx.rop.cst.CstInterfaceMethodRef 我的项目也有同样的问题。如果我使用 com.android.tools.build:gradle:1.3.0,我可以编译。一旦我使用 2.0.0,它就会给我同样的问题 【参考方案1】:

我尝试了 android studio 最大堆大小选项,但在构建发布版本时仍然出现内存不足错误。 所以最后下面的设置在 gradle.properties 文件中对我有用。

org.gradle.jvmargs=-Xmx5120m -XX:MaxPermSize=5120m -XX:+HeapDumpOnOutOfMemoryError

【讨论】:

【参考方案2】:

已弃用

gradle.properties

# ...
android.enableD8.desugaring = true
android.enableIncrementalDesugaring = false

【讨论】:

【参考方案3】:

好吧,我相信这个问题已经得到解答并且已经被接受了。 但我会写下我遇到的问题以及我是如何解决的。

我也收到了同样的错误:

错误:任务 ':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: org.gradle.process.internal.ExecException: Process 'command 'C:\Program Files\Java\jdk1.8.0_60\bin\java.exe'' 以非零退出值 1 结束

我没有幸运地应用所有设置并获得了成功。但是当我再次尝试调试项目时。 这次我得到了三个错误(包括上面):

错误:Java HotSpot(TM) 64 位服务器虚拟机警告:CodeCache 已满。编译器已被禁用。

错误:Java HotSpot(TM) 64 位服务器 VM 警告:尝试使用 -XX:ReservedCodeCacheSize= 增加代码缓存大小

那我做了什么? 我只是去Android Studio:

文件 > 使缓存无效/重新启动.. > 无效并重新启动

快速修复!

补充说明:

我在 Gradle 控制台中发现的内容:

:app:incrementalDebugTasks :app:prePackageMarkerForDebug :app:fastDeployDebugExtractor :app:generateDebugInstantRunAppInfo :app:transformClassesWithDexForDebug 要在进程中运行 dex,Gradle 守护进程需要更大的堆。 目前大约有 910 MB。 要加快构建速度,请将 Gradle 守护程序的最大堆大小增加到 2048 MB 以上。 为此,请在项目 gradle.properties 中设置 org.gradle.jvmargs=-Xmx2048M。 欲了解更多信息,请参阅https://docs.gradle.org/current/userguide/build_environment.html :app:transformClassesWithDexForDebug 失败

在 Oracle 博客上Here 了解更多信息

【讨论】:

【参考方案4】:

我知道这是一个老问题,但我花了几天时间寻找对我不起作用的解决方案,所以也许这对其他人有帮助。

我的项目有一个引发错误的插件。我不得不删除插件并重新添加它,突然间我可以通过构建过程了。

$ cordova add phonegap-plugin-push
$ cordova plugin add phonegap-plugin-push

我刚刚运行了上面的,它已经解决了。

【讨论】:

【参考方案5】:

只需在你的应用目录中添加一个“multidex-config.txt”:

【讨论】:

【参考方案6】:

将此行添加到 ProGuard-rules.pro 文件中:

-keepparameternames

这在混淆库时帮助了我。将库添加为依赖项时出现 zip 异常。

【讨论】:

【参考方案7】:

默认情况下,Android Studio 的最大堆大小为 1280MB。如果您正在处理大型项目,或者您的系统有大量 RAM,则可以通过增加 Android Studio 进程(例如核心 IDE、Gradle 守护程序和 Kotlin 守护程序)的最大堆大小来提高性能。

如果您使用具有至少 5 GB RAM 的 64 位系统,您还可以手动调整项目的堆大小。为此,请按以下步骤操作:

单击菜单栏中的文件 > 设置(或在 macOS 上单击 Android Studio > 首选项)。单击外观和行为 > 系统设置 > 内存设置。

更多信息请点击

https://developer.android.com/studio/intro/studio-config

【讨论】:

【参考方案8】:

最好的方法来自 this threadJames Riordan 的回答

这可以通过更新到 Gradle 5.5 来解决

最简单的方法是更新正在使用的包装器:

打开gradle/gradle-wrapper.properties

找到看起来像的线

distributionUrl=https\://services.gradle.org/distributions/gradle-5.X.X-all.zip
将版本更改为 5.5-all.zip

然后尝试再次运行构建。

【讨论】:

【参考方案9】:

我已将 jdk 更新为 1.8.0_74,Android-studio 更新为 2.1 preview 1 并添加到应用程序文件中

@Override
protected void attachBaseContext(Context base) 
    super.attachBaseContext(base);
    MultiDex.install(this);

【讨论】:

【参考方案10】:

这些答案都不适合我。我正在使用 Android Studio 3.4.1。

我能够构建项目,但当我将其部署到移动设备时,Android Studio 显示此错误。事实证明这是“即时运行”错误。

按照这个答案: https://***.com/a/42695197/3197467

【讨论】:

【参考方案11】:

更新到Android 3.4后,我开始收到错误,尝试了以上所有解决方案。

问题的根本原因是,更新 Android Studio 启用了 Instant Run

因此,您可以尝试的解决方案之一是禁用 Instant Run,如果它为您启用,则可以解决我的问题。

【讨论】:

我遇到了同样的问题。禁用 Instant Run 并再次启用它对我有用。 也解决了我的问题。请注意 - Instant Run 很有用,所以我希望很快会有更好的解决方案 Aaaaarg 他们总是在更新时启用它,它总是会导致很多问题。 Jep,这也是我在将 Firebase 放入项目后出现问题的原因,禁用 Instant Run 终于让我构建它,谢谢! 禁用即时运行对我有用。没有再次收到错误。【参考方案12】:

在我的情况下,缓存无效并重新启动 android studio 解决了问题。要做到这一点,请转到

文件 -> 使缓存无效/重新启动

【讨论】:

【参考方案13】:

对我来说,这是一个没有数据类型 [Any] 的未实现的 parcelable 类;因此,在模型类的可打包实现中创建了一个 TODO() 构造函数。

希望它对某人有所帮助。

@SerializedName("firstTxnDetails")
var firstTxnDetails: Any? = Any()

//in parcelable implementation :

constructor(parcel: Parcel) : this(
            parcel.readInt(),
            parcel.readLong(),
            parcel.readInt(),
            parcel.readDouble(),
            parcel.readLong(),
            TODO("firstTxnDetails"), // -> correct this
            parcel.readString(),
            parcel.readLong(),
            parcel.readParcelable(MasterSavingPlan::class.java.classLoader),
            parcel.readInt(),
            parcel.readString(),
            parcel.readString()) 
    

【讨论】:

【参考方案14】:

您可以通过将项目 ext 属性 googlePlayServicesVersion 添加到 app/App_Resources/Android/app.gradle 文件来解决此问题,如下所示:

project.ext 
    googlePlayServicesVersion = "+"

【讨论】:

【参考方案15】:

经过大量努力,我刚刚在凭据下方添加了,我成功了

1) app-> 'proguard-rules.pro' 文件

-ignorewarnings

-keep class * 
    public private *;

2) 并且还添加在 app -> build.gradle 文件中

android 

        ...........................
    defaultConfig 
        ..................  

     multiDexEnabled true
    


    buildTypes 
        debug 
            minifyEnabled true
            useProguard false
            proguardFiles getDefaultProguardFile('proguard-android.txt'),
                    'proguard-rules.pro'
        
        release 
            minifyEnabled true
            proguardFiles getDefaultProguardFile('proguard-android.txt'),
                    'proguard-rules.pro'
        
        innerTest 
            matchingFallbacks = ['debug', 'release']
        

    

...................................................


dependencies 
    ..................................
    implementation  'com.android.support:multidex:1.0.2'

【讨论】:

【参考方案16】:

对我来说,在我从项目中删除 jar 文件后,问题就解决了。我的项目中的一个jar 文件似乎使用的是旧版本的google play services

【讨论】:

与 jackrabbit-standalone-2.12.2.jar 相同的问题。如果我将它添加到项目中,那么问题就会出现。 @MikeOx 我更新了一些 Android 工具,结果我得到了几个 jar 文件的两个版本,例如mockable-android-24.jar 和 mockable-android-25.jar。删除旧版本为我修复了这些构建错误。 但是我没有使用任何 jar 文件那么为什么我会遇到这个问题 能否请您提供有关此解决方案的更多详细说明 @IvanMilisavljevic 您现在可以使用 Gradle,而不是 JAR 文件。 developers.google.com/android/guides/setup#split【参考方案17】:

我在使用最新的 AndroidStudio (3.2 B1) 时遇到随机问题,并尝试了上述所有解决方案。我通过禁用“构建类型”中的“Zip Align Enabled”选项使其工作

【讨论】:

【参考方案18】:

对于那些仍在使用 VS-TACO 并遇到此问题的人。这是由于 jar 文件的版本不一致造成的。

您仍然需要对platforms\android 文件夹中的build.gradle 文件添加更正:

 defaultConfig 
        multiDexEnabled true 
 

 dependencies 
      compile 'com.android.support:multidex:1.0.3'
 

如果有所有其他更改,最好在 build-extras.gradle 文件(自动链接到 build.gradle 文件)中执行所有其他更改,并删除 platforms/android 文件夹中的所有内容,但只保留 build-extras.gradle 文件。然后编译。

【讨论】:

【参考方案19】:

我真的不知道是怎么回事,但是在我完成所有这些之后,这个错误就消失了:

1

删除implementation 'com.google.android.gms:play-services:12.0.1'

并添加

implementation 'com.google.android.gms:play-services-location:12.0.1'
implementation 'com.google.android.gms:play-services-maps:12.0.1'
implementation 'com.google.android.gms:play-services-places:12.0.1'

2

更新 git、jdk、更改项目结构中的 JDK 位置

3

删除我的项目中的构建文件夹

4

清理并重建项目

【讨论】:

【参考方案20】:

这发生在我身上,即使是在调试版本中,我只是清除了所有模块级别和项目级别的构建文件夹,它就可以正常工作,是的,就像那样。

【讨论】:

刚刚为我工作。【参考方案21】:

只需将 multiDexEnabled 设置为 true 即可。

    defaultConfig 
    
        multiDexEnabled true     
    

【讨论】:

【参考方案22】:

所以,我的问题并没有通过添加 multiDexEnabled 标志得到解决。它实际上在收到错误消息之前就在那里。

为我解决该错误的原因是确保我使用的是所有播放服务库的相同版本。 在一个库中,我有 11.8.0,但在使用该库的应用程序中,我使用的是 11.6.0,这种差异是导致错误消息的原因。

因此,与其将您的库更改为像以前的答案那样的特定版本,也许您想检查您是否始终使用相同的版本,因为 Android Studio 通过警告明确不鼓励混合版本。

【讨论】:

【参考方案23】:

在应用级别gradle的defaultConfig中添加multiDexEnabledtrue

defaultConfig 
    applicationId "your application id"
    minSdkVersion 16
    targetSdkVersion 25
    versionCode 1
    versionName "1.0"
    testInstrumentationRunner"android.support.test.runner.AndroidJUnitRunner"
    multiDexEnabled true

【讨论】:

【参考方案24】:

Sol 1:build.gradle

defaultConfig 
    multiDexEnabled true

清理您的项目并重建。

Sol 2:local.properties添加,

org.gradle.jvmargs=-XX\:MaxHeapSize\=512m -Xmx512m

溶胶 3

compile 'com.android.support:multidex:1.0.1'

否则将所有 3 个添加到您的应用程序中。

【讨论】:

【参考方案25】:

我在我的应用程序中遇到了类似的问题。这就是我所做的。 1.在模块中为build.gradle添加这个:app

multiDexEnabled = true

所以代码是这样的:

    android 
    compileSdkVersion 25
    buildToolsVersion "25.0.2"
    defaultConfig 
        applicationId "com.example..."
        minSdkVersion 17
        targetSdkVersion 25
        versionCode 1
        versionName "1.0"
        multiDexEnabled = true
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    

    buildTypes 
        release 
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        
    

这对我有用。希望这对你也有帮助:) 在同一个项目中,我也使用了 Firebase。因此,启用 multiDexEnabled 会导致 Firebase 中 Pre Lollipop 设备 的另一个问题。未识别某些 FireBase 类。 (无法获取提供程序 com.google.firebase.provider)。 解决方法已解释 here.

【讨论】:

minifyEnable true 给了我例外 - 以下是我的问题,***.com/questions/51720018/… 请帮助我。【参考方案26】:

不需要 MULTIDEX,我重复,不需要 MULTIDEX


让我详细说明一下:Multidex 基本上是 Android 附带的一个工具,如果您将其设置为 true,则具有超过 64,000 个方法的应用程序能够使用稍微改变的构建过程进行编译。但是,如果您的错误如下所示,您只需要使用 multidex:

写入输出问题:字段引用过多:131000;最大值是 65536. 您可以尝试使用 --multi-dex 选项。

或者像这样

转换为 Dalvik 格式失败:无法执行 dex:方法 ID 不在 [0, 0xffff]: 65536

但这里的情况不是!这里的问题(至少对我而言)是由您的 build.gradle 文件的依赖项引起的。

解决方案: 利用特定的依赖项——不要只导入整个依赖项!

例如,如果您需要位置的 Play Services 依赖项,则只需将其导入 用于位置。

做:

compile 'com.google.android.gms:play-services-location:11.0.4'

不要:

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

另一个可能导致此问题的问题可能是您正在使用的某种外部库,即引用您的依赖项的先前版本。在这种情况下,请按照以下步骤操作:

    转到 SDK 管理器,并安装任何对依赖项的更新 确保您的 build.gradle 文件显示最新版本。要获取最新版本,请使用此链接: https://developers.google.com/android/guides/setup 编辑您的库(或安装更新版本,如果存在),以引用最新版本

我知道这个问题很老,但我需要 得到这个答案,因为无缘无故地使用 multidex 可能会导致您的应用出现 ANR!仅当您确定需要它并且了解它是什么时才使用 multidex。

我自己花了几个小时试图在没有 multidex 的情况下解决这个问题,我只是想分享我的发现——希望这会有所帮助

【讨论】:

太棒了!完美运行! 你怎么知道是哪个特定的依赖导致了问题?我添加了com.facebook.android:audience-network-sdk:4.+,从那时起我就无法构建了。 你拯救了我的一天! 这样一个愚蠢的答案。如果你有很多依赖项,无论如何你都需要多 dex。只需添加 kotlin 库、几个 google 服务 (com.google.android.gms:play-services-*:*)、firebase 服务、crashlytics、gson、androidx(支持库)、cardview、recyclerview、android.material:material。没有 MULTI DEX 是不可能的(你喜欢 capslock 吗?我不喜欢,所以下次请不要在这里回答这样的问题......) 这里有些人很聪明!没错!,它不是multidex错误,multidex错误是不同的,它可能来自某些依赖项。 @user155,RUCHIR 不对您的依赖问题负责!我喜欢大写锁 :)【参考方案27】:

我只修复了这段代码。

local.properties

org.gradle.jvmargs=-XX\:MaxHeapSize\=512m -Xmx512m

你应该在 gradle 上做这个改变

defaultConfig 
    applicationId "yourProjectPackage"
    minSdkVersion 15
    versionCode 1
    versionName "1.0"
    targetSdkVersion 23

    multiDexEnabled true //important

【讨论】:

"local.properties" 是文件名还是配置值?它位于项目内的哪个位置(例如:在哪个文件夹中)? local.properties 文件位于项目的根目录中。如果你有关于 multiDex 的问题--> developer.android.com/studio/build/multidex.html 我刚刚在我的 build.gradle 中插入了 multiDexEnabled true ,魔法就完成了。谢谢。 我不知道这一切意味着什么,但它对我有用! 在 API multiDexEnabled 没有从 MultiDexApplication 扩展 Application 类将导致 NoClassDefFoundErrors。【参考方案28】:

在默认配置中 添加 multiDexEnabled = true

    defaultConfig 
    applicationId "com.test"
    minSdkVersion 16
    targetSdkVersion 25
    versionCode 1
    versionName "1.0"
    multiDexEnabled = true
    testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"

【讨论】:

【参考方案29】:

如果您在更新 google play services 9.8.0 后遇到问题,请将其添加到您的依赖项中:

`dependencies 
compile fileTree(include: ['*.jar'], dir: 'libs')
testCompile 'junit:junit:4.12'
compile 'com.google.firebase:firebase-messaging:9.8.0'
compile 'com.google.android.gms:play-services-maps:9.8.0'
compile 'com.google.android.gms:play-services-location:9.8.0'
compile 'com.google.firebase:firebase-database:9.8.0'
compile 'com.google.firebase:firebase-auth:9.8.0'
compile 'com.google.firebase:firebase-crash:9.8.0'
compile 'com.google.maps.android:android-maps-utils:0.4.4'
compile 'com.google.android.gms:play-services-appindexing:9.8.0'


【讨论】:

【参考方案30】:

将此行添加到您的build.gradle

 defaultConfig 
    ............
    aaptOptions.cruncherEnabled = false
    aaptOptions.useNewCruncher = false
    compileOptions.encoding = 'ISO-8859-1'
    multiDexEnabled true

【讨论】:

您在此处添加了哪个“行”?

以上是关于Android-错误:任务':app:transformClassesWithDexForRelease'的执行失败的主要内容,如果未能解决你的问题,请参考以下文章

Android-错误:任务':app:transformClassesWithDexForRelease'的执行失败

Android构建错误任务':app:checkDebugDuplicateClasses'的执行失败

错误:Android 中的任务 ':app:transformClassesWithJarMergingForDebug' 执行失败

错误:任务':app:transformClassesWithMultidexlistForDebug' android studio执行失败

Android Studio TransformException:错误:任务':app:transformClassesWithDexForDebug'的执行失败

错误:任务':app:transformClassesWithDexForDebug'在android studio中执行失败