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

Posted

技术标签:

【中文标题】错误:任务\':app:transformClassesWithDexForDebug\'在android studio中执行失败【英文标题】:Error:Execution failed for task ':app:transformClassesWithDexForDebug' in android studio错误:任务':app:transformClassesWithDexForDebug'在android studio中执行失败 【发布时间】:2016-09-26 15:26:46 【问题描述】:

我正在将我的项目从 eclipse 转移到 android Studio。在运行我的一个应用程序时,我收到以下错误。无法找到任何解决方案。我也启用了multidex。

错误:任务执行失败 ':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.7.0_79\bin\java.exe'' 以非零退出值 1 结束

我的 gradle 文件也在下面

apply plugin: 'com.android.application'
android 
compileSdkVersion 23
buildToolsVersion "23.0.3"
defaultConfig 
    applicationId "com.myapp"
    minSdkVersion 9
    targetSdkVersion 21
    multiDexEnabled true
buildTypes 
    release 
        minifyEnabled true
        proguardFiles getDefaultProguardFile('proguard- android.txt'), 'proguard-project.txt', 'proguard-google-api-client.txt'
     
   
 
 dependencies 
 compile 'com.android.support:support-v4:23.4.0'
 compile 'com.google.android.gms:play-services:+'
 compile 'com.google.http-client:google-http-client-gson:1.20.0'
compile 'com.google.code.gson:gson:2.1'
compile 'com.android.support:appcompat-v7:23.4.0'
compile files('libs/activation.jar')
compile files('libs/additionnal.jar')
compile files('libs/android-support-v7-cardview.jar')
compile files('libs/android-support-v7-recyclerview.jar')
compile files('libs/commons-logging-1.1.1.jar')
compile 'com.google.api-client:google-api-client:1.18.0-rc'
compile 'com.google.api-client:google-api-client-android:1.18.0-rc'
compile 'com.google.api-client:google-api-client-appengine:1.18.0-rc'
compile 'com.google.http-client:google-http-client:1.18.0-rc'
compile 'com.google.http-client:google-http-client-android:1.18.0-rc'
compile 'com.google.http-client:google-http-client-appengine:1.18.0-rc'
compile 'com.google.oauth-client:google-oauth-client:1.18.0-rc'
compile 'com.google.oauth-client:google-oauth-client-appengine:1.18.0-rc'
compile files('libs/google-api-client-gson-1.18.0-rc.jar')
compile files('libs/google-api-client-jackson2-1.18.0-rc.jar')
compile files('libs/google-api-client-java6-1.18.0-rc.jar')
compile files('libs/google-api-client-servlet-1.18.0-rc.jar')
compile files('libs/google-http-client-jackson2-1.18.0-rc.jar')
compile files('libs/google-http-client-jdo-1.18.0-rc.jar')
compile files('libs/google-oauth-client-java6-1.18.0-rc.jar')
compile files('libs/google-oauth-client-jetty-1.18.0-rc.jar')
compile files('libs/google-oauth-client-servlet-1.18.0-rc.jar')
compile files('libs/GraphView-4.0.1.jar')
compile files('libs/httpclient-4.0.1.jar')
compile files('libs/httpcore-4.0.1.jar')
compile files('libs/jackson-core-2.1.3.jar')
compile files('libs/jetty-6.1.26.jar')
compile files('libs/jetty-util-6.1.26.jar')
compile files('libs/jsr305-1.3.9.jar')
compile files('libs/jxl.jar')
compile files('libs/mail.jar')
compile files('libs/transaction-api-1.1.jar')
 

【问题讨论】:

Android java.exe finished with non-zero exit value 1的可能重复 在AS最新3.2版本中,缺少资源文件也可能会导致这个问题。不知道你有没有这个问题。只是提示:aapt"finished with non-zero exit value 1 "并且不像其他版本那样明确。 【参考方案1】:

错误:任务执行失败 ':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:进程'命令 'C:\Program Files\Java\jdk1.7.0_79\bin\java.exe'' 完成 非零退出值 1

上面的错误是由于很多原因而发生的。所以我可以说明为什么会出现这个错误以及如何解决它。

原因 1: 类文件名重复

解决方案:

当您将某些类文件重构为库项目时。那个时候你写了类文件的名字所以,仔细检查你没有任何重复的名字

原因2:当你有很多缓存内存时

解决方案:

如果你有很多缓存内存,那么这个错误就会发生,所以解决它。 转到File/Invalidate caches / Restart 然后选择Invalidate and Restart 它会清理你的缓存。

原因 3:当有内部错误或使用 beta 版本切换回稳定版本时。

解决方案:

解决方法很简单,进入构建菜单并点击Clean Project,清理后点击Rebuild Project

原因4:当你的系统配置内存不足时。

解决方案:

打开任务管理器并停止当时不常用的其他应用程序,以便释放空间并解决OutOfMemory

原因 5: 问题是您的方法计数已超过 65K。

解决方案:

打开你的项目build.gradle文件添加

defaultConfig 
        ...
        multiDexEnabled true
    

并在依赖项中添加以下行。

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

【讨论】:

如果你已经添加了 multiDexEnabled true 那么 REASON-2 可以帮助你。谢谢@Ironman,它对我有帮助。 @Nils 很高兴知道这一点。 如何找到方法计数? 感谢@Ironman 指出这些解决方案。有时即使我启用了 multiDexEnabled,我也会收到此错误,解决方案 2 对这种情况有帮助。否则我需要重新启动机器来解决此问题。 使缓存无效并重新启动对我有用...伙计们第一次尝试这个选项...谢谢【参考方案2】:

**在我的情况下,问题解决了 Instant Run DISABLE **

【讨论】:

【参考方案3】:

在你的 build.gradle(app level) 下检查 multidex 是否启用。如果没有像下面这样的地方

dependecies
multidexEnabled true

检查你的 gradle.properties(app level)。如果你看到下面的代码

#org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8

去掉行前的#,应该是这样的

org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8

【讨论】:

【参考方案4】:

这可能是由于以下原因:

    项目中的一个 jar 文件使用的是旧版本的 google play 服务。

    defaultconfig中使用multiDexEnabled true

    具体说明您在依赖项中添加的类。喜欢

    编译'com.google.android.gms:play-services-maps:8.4.0'

不像编译'com.google.android.gms:play-services:+'

【讨论】:

【参考方案5】:

请 将此添加到您的 gradle 文件中

android 
...
defaultConfig 
    ...
    multiDexEnabled true
    

并且还在你的 gradle 中添加以下依赖项

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

或者另一种选择是:在您的清单文件中,在应用程序标签中添加来自 multidex 支持库的 MultiDexApplication 包。

<?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>

【讨论】:

【参考方案6】:

我尝试了所有方法,但直到我更改了我的 JDK 版本,这个错误仍然不会消失。

我的JDK版本是7,改到8后,错误消失了,如果没有其他问题,你可以试试。

【讨论】:

【参考方案7】:

我试过这个,它对我有用。 希望它也适用于其他人。

    打开 build.gradle 模块文件 将 sdkversion 从 25 降级到 24 或 23 添加“multiDexEnabled true” 评论这一行:compile 'com.android.support:appcompat-v7:25.1.0'(如果它在'dependencies'中) 同步您的项目 准备出发了。

这里我附上了截图来解释事情。 Go through this steps

乐于助人。

谢谢。

【讨论】:

降级 sdkversion 是个坏主意。 Google Play 商店甚至会要求您在未来升级您的 sdkversion。【参考方案8】:

或者你可以试试这个 -

Extend your Application class with MultiDexApplication instead of Application !

【讨论】:

【参考方案9】:

类名重复

喜欢

class BackGroundTask extends AsyncTask<String, Void, Void> 

class BackgroundTask extends AsyncTask<String, Void, Void> 

【讨论】:

【参考方案10】:

我已经为更多项目尝试过这个,它对我有用。请注意,该解决方案可以为您的应用配置 multidex:

android 
     compileSdkVersion 25
     buildToolsVersion "25.0.1"

     defaultConfig 
           ...
           minSdkVersion 9
           targetSdkVersion 25
     

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

 dependencies 
       compile 'com.android.support:support-v4:25.1.0'
       compile 'com.google.android.gms:play-services:8.3.0'
       ...
 

【讨论】:

【参考方案11】:

感谢@Ironman 的完整回答,但是我应该根据我遇到此问题的经验添加我的解决方案。

在 build.gradle(模块:app)中:

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

    ...

    dexOptions 
            javaMaxHeapSize "4g"
        

    ...

    defaultConfig 
            multiDexEnabled true
    

另外,将以下内容放入 gradle.properties 文件中:

org.gradle.jvmargs=-Xmx4096m -XX\:MaxPermSize\=512m -XX\:+HeapDumpOnOutOfMemoryError -Dfile.encoding\=UTF-8

我应该提一下,这些数字适用于我的笔记本电脑配置(配备 16 GB RAM 的 MacBook Pro),因此请将它们作为您的配置进行编辑。

【讨论】:

【参考方案12】:

临时解决办法是将下面的代码放在模块build.gradle中:

android  
    aaptOptions.cruncherEnabled = false
    aaptOptions.useNewCruncher = false

并同步项目。

【讨论】:

【参考方案13】:

我的设置截图:

感谢this post。

只需在您的设置中关闭即时运行即可。您可以像我展示的那样轻松搜索关键字“即时”,它会切换到您想要的窗口。

【讨论】:

【参考方案14】:

就我而言,我有 2 个项目 AB。我升级到gradle 4.5

A 依赖于 B,但两者都引用了我的 3rd party jar

我遇到了这个错误

com.android.tools.r8.errors.CompilationError: 程序类型已经 现在:com.mnox.webservice.globals.WebServiceLightErrorHashCode

程序类型已经存在:com.mnox.webservice.globals.WebServiceLightErrorHashCode

修复它

    我删除了重复的 jar 的 我在B build.gradle 文件中使用了api,以便在A 中引用它。

另一个根本原因可能是您已升级到 gradle 4.5 并在您的公共空间中使用 implementation 而不是 api build.gradle

【讨论】:

【参考方案15】:

值得一提的是,虽然其他人建议使用文件进行调整,但我能够通过安装缺少的插件(离子框架)来解决此问题

希望它对某人有所帮助。

cordova 插件添加 cordova-support-google-services --save

【讨论】:

【参考方案16】:

对我来说,解决方案是删除主目录中的 gradle 缓存文件夹 (.gradle/caches) 并重新构建。可能是由于重复的类加载问题。

【讨论】:

【参考方案17】:

仅适用于 Ionic 4

$ cordova clean

帮我跑

$ ionic cordova run android --device

【讨论】:

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

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

错误:任务 ':app:packageAllDebugClassesForMultiDex' 执行失败

错误:任务“:app:transformClassesWithDexForDebug”执行失败

错误:任务':app:kaptDebugKotlin'的执行失败

错误:任务“:app:transformClassesWithDexForRelease”执行失败。

Gradle构建错误,错误:任务':app:transformResourcesWithMergeJavaResForDebug'的执行失败