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

错误

错误: 任务“ : app: formClassesWithDexForDebug”的执行失败。 TransformException: com.android.ide.common.Process. ProcessException: org.gradle.Process.Internal. ExecException: Process‘ command’/usr/lib/jvm/java-8-oracle/bin/java”以非零退出值1结束

我的应用程序档案:

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'
}

在调试时,如果我将 minifyEnable 设置为 true,那么它就会编译。但是,那么我就不能调试我的应用程序。

我检查了另一个问题: 执行失败的任务: 应用程序: 转换类与 DexForDebug & # 39; ,而实现谷歌登录 Android,但是只有一个答案,不幸的是,实现它并不能解决这个问题。

AFAIK,这个错误是由于添加了太多的 Gradle 依赖关系造成的,但是我可能错了(我真的希望是错的,因为所有这些包都非常重要!).

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

171196 次浏览

试试看

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 模式。PreDexlibrary | 是否使用 pre-dex 库。这可以改进增量构建,但是干净的构建可能会更慢。

只要纠正 Google 对服务的依赖性:

您正在将所有播放服务包括在您的项目中。只添加那些您想要的。

例如,如果只使用 map 和 g + signin,那么更改

 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之前的 Google Play 服务版本中,您必须编译 在某些情况下,这样做 在你的应用程序中保持方法的数量(包括 框架 API、库方法和您自己的代码) 限制。

在6.5版本中,您可以选择性地编译 Google Play 服务 API 到你的应用程序。例如,只包括谷歌 Fit 和 AndroidWearAPI 中,替换以下行 Gradle 文件:
使用以下代码行编译‘ com.google.android.gms: play-services: 8.3.0’< br/>

编译‘ com.google.android.gms: play-services-fit: 8.3.0’
编译‘ com.google.android.gms: play-services-warable: 8.3.0’

整个列表可以在这里找到。

当我按照 Android Studio 的建议将 Gradle 插件从1.2.3版本更新到1.5版本时,我遇到了这个问题。在 网页中,1.5.0似乎是一个 beta 版本。

老实说,我不知道1.5.0版本有什么优点,但我宁愿等到有了稳定版本再说。

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

可能有帮助

在用尽所有其他办法之后作为绝对的最后手段

我删除了所有的记忆棒(RAM) ,除了一个。我现在的记忆力减弱了,但它又能工作了。我不能假装知道为什么构建进程总是发现内存损坏,或者如果这是100% 的根本原因-在其他方面,系统运行良好。也许我们可以试试,祝你好运。

这就是 Multidex 的问题所在。你可以尝试移除一些罐子,或者你可以这样尝试: Http://developer.android.com/tools/building/multidex.html#mdex-gradle 在 app 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>

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

我打开了3个安卓工作室时,我得到了错误,当我关闭2我没有得到任何错误。

不需要添加任何与 multiDex 相关的代码!

像这样在 build.gradledefault config file中加入 multiDexEnabled true

    defaultConfig {
multiDexEnabled true
}

不需要多层纤维。对于在 Android Studio 2.1中打开的“旧”项目,它正在将 gradle 插件版本从1.5.0改为2.1.0,这为我解决了问题。

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

我解决了! 这是一个配置和更新的集合。 在适合 < strong > 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
}
}

然后更新到 Java8http://tecadmin.net/install-oracle-java-8-jdk-8-ubuntu-via-ppa/,所有问题就都解决了! 这是因为 buildTools的更新和新的 Android 工作室。 其他的都不会失败。

当我通过 SSH 将编译任务委托给 谷歌计算机引擎时,我遇到了这个问题。这个问题的本质是一个内存错误,正如崩溃日志所指出的那样; 具体来说,它是在 Java 在构建过程中用完虚拟内存时抛出的。

重要提示: 当 gradle 由于这个内存错误而崩溃时,在编译任务失败很长时间后,gradle 守护进程仍在运行。任何重新尝试使用 gradle 构建的操作都将分配一个新的 gradle 守护进程。必须的确保使用 gradlew --stop < em > 正确处理任何崩溃的实例。

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=

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

我也犯过类似的错误。我通过切换目录修复了它。从我的 git 存储库再次克隆我的项目,将它导入 android 工作室并构建它。似乎 Android Studio 在构建项目时生成的目录/文件之一可能已经损坏。删除您的项目中所有 Android Studio 生成的文件,或者像我一样做可以解决这个问题。希望这个能帮上忙。

通过改变

编译‘ com.google.android.gms: play-services: 8.1.0’

只有需要的文件,这个问题可以解决 这个问题是由于超过 build.gradle 文件中的文件而产生的。

致所有曾经面对这个问题/将来将要面对这个问题的人:

点击构建菜单-> 选择构建变量-> 恢复到‘调试’

对模块中可调试程序的注释: app /* 调试{ 可调试为真 }*/

转到 Build 菜单-> generatingsignedapk-> ... .-> Build it

移动文件底部的 application 插件声明:

应用插件: ‘ com.google.gms.google-services’

显然,我通过综合所有解决方案来解决这个问题 向 android 清单添加以下内容:

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

接下来是 build.gradle 应用程序模块

android {
...


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


multiDexEnabled true


}


}

进入 Build-> Clean,然后再次运行你的应用程序

尝试将 multiDexEnabled true添加到应用程序 build.gradle文件中。

  defaultConfig {
multiDexEnabled true
}

确保你没有使用两个版本的谷歌服务。

例如:

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

还有

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

我个人的解决办法是:

build.gradle

defaultConfig {
multiDexEnabled true
}


dexOptions {
javaMaxHeapSize "4g"
}

进入 Build->

清洁计划->

运行项目: 完成

为我研究机器人5.1

  1. 执行: cordova 插件 rm cordova-plugin-compat —— force
  2. 执行: cordova plugin add cordova-plugin-compat@1.2
  3. 更改: config.xml 在您的项目文件夹中使用“6.2.3”而不是“ ^ 6.2.3”, 然后删除平台/android 文件夹,重新运行 cordova 准备 android,和 cordova 构建 android

如果使用 java8或更高版本,那么问题就是我们使用的库与 java8不兼容。为了解决这个问题,将这两行代码添加到应用程序的 build.gradle 和所有子模块(如果有的话)。(Android 工作室在错误信息中清楚地展示了如何做到这一点)

TargetCompatiability =’1.7’ Source 兼容性 = “1.7”

只需删除 /android/android/app中的 build文件夹

然后用 react-native run-android重建

不要发疯 我只是清理,然后重建项目和错误消失了

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

我的回应有点老旧,但对我来说,唯一的解决方案是在 defaultConfig 中添加 multiDexEnable 选项,如下所示:

    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'
}
}
}
}

我的错误与不同库版本的问题有关,这就解决了问题。

我希望这能帮到某人:)

我在 Android 设备上运行一个 Ionic 项目时出现了这个错误,我通过删除和添加 Android 平台解决了这个问题:

ionic cordova platform remove android
ionic cordova platform add android

对我来说:-

  • 出了什么问题: 任务“ : app: multiDexListDebug”执行失败。

答案:-

我刚刚删除的 react-native-firebase文件夹,这将在 node_modules文件夹,这是它,然后我可以运行应用程序成功。

还有一件事不要忘记删除 package.json 文件中的 react-native-firebase而不是 @react-native-firebase。所以下次你运行 npm I或者 yarn的时候。这不会被安装到你的应用程序中。

是这个包裹导致了这个问题。

只要从 Android 平台删除 .gradle文件夹,然后重新构建该项目,Android Studio 将再次生成它。