错误:任务':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 个项目 A
和 B
。我升级到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'的执行失败