错误
错误:执行失败的任务“:应用程序: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 true
在default config file
中build.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:
- 执行:科尔多瓦插件RM科尔多瓦 - 插件 - COMPAT --force
- 执行:科尔多瓦插件添加cordova-plugin-compat@1.2
- 变化:一个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'