我得到执行异常和大堆错误
Posted
技术标签:
【中文标题】我得到执行异常和大堆错误【英文标题】:i get executionexception and large heap error 【发布时间】:2017-08-01 16:19:10 【问题描述】:要加快构建速度,请将 Gradle 守护程序的最大堆大小增加到 3072 MB 以上。
要在进程中运行 dex,Gradle 守护进程需要更大的堆。
为此,请在项目 gradle.properties 中设置 org.gradle.jvmargs=-Xmx3072M。 它目前大约有 989 MB。
更多信息请见https://docs.gradle.org/current/userguide/build_environment.html 错误:任务 ':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_102\bin\java.exe'' 以非零退出值 1 结束 :app:transformClassesWithDexForDebug 失败
build.gradle
apply plugin: 'com.android.application'
android
compileSdkVersion 24
buildToolsVersion "24.0.2"
defaultConfig
applicationId "videoplayer.avkinfosoft.com.videoplayer"
minSdkVersion 11
targetSdkVersion 24
versionCode 1
versionName "1.0"
multiDexEnabled true
buildTypes
release
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
dexOptions
javaMaxHeapSize "2g"
packagingOptions
pickFirst 'META-INF/license.txt'
exclude 'META-INF/DEPENDENCIES'
exclude 'META-INF/NOTICE'
exclude 'META-INF/LICENSE'
exclude 'META-INF/LICENSE.txt'
exclude 'META-INF/NOTICE.txt'
productFlavors
dependencies
compile fileTree(include: ['*.jar'], dir: 'libs')
testCompile 'junit:junit:4.12'
compile 'com.android.support:appcompat-v7:24.2.1'
compile 'com.android.support:design:24.2.1'
compile 'com.android.support:support-v4:24.2.1'
compile 'com.google.firebase:firebase-ads:9.4.0'
gradle.propties
项目范围的 Gradle 设置。
IDE(例如 Android Studio)用户: 通过 IDE 配置的 Gradle 设置将覆盖 此文件中指定的任何设置。
有关如何配置构建环境的更多详细信息,请访问 http://www.gradle.org/docs/current/userguide/build_environment.html
指定用于守护进程的 JVM 参数。 该设置对于调整内存设置特别有用。 默认值:-Xmx10248m -XX:MaxPermSize=256m org.gradle.jvmargs=-Xmx1024m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8
配置后,Gradle 将以孵化并行模式运行。 此选项应仅用于解耦项目。更多详情,请访问 http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects org.gradle.parallel=true
org.gradle.jvmargs=-Xmx1024m
org.gradle.daemon=true
配置后,Gradle 将以孵化并行模式运行。 此选项应仅用于解耦项目。更多详情,请访问
http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects org.gradle.parallel=true
org.gradle.configureondemand=true
manifest.xml
<application
android:allowBackup="true"
android:icon="@drawable/logo"
android:label="@string/app_name"
android:largeHeap="true"
android:theme="@style/AppTheme"
tools:replace="android:theme,android:icon">
修改后出错
dexOptions
javaMaxHeapSize "2g"
错误:错误:发生了致命异常。程序将退出。
错误:错误:发生了致命异常。程序将退出。
错误:错误:发生了致命异常。程序将退出。
错误:错误:无法创建 Java 虚拟机。
错误:错误:无法创建 Java 虚拟机。
错误:最大堆大小无效:-Xmx4g
错误:指定的大小超过了最大可表示大小。
欲了解更多信息,请参阅https://docs.gradle.org/current/userguide/build_environment.html
错误:任务 ':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_102\bin\java.exe'' 以非零退出值 1 结束
错误:错误:发生了致命异常。程序将退出。
错误:指定的大小超过了最大可表示大小。
错误:最大堆大小无效:-Xmx4g
错误:错误:无法创建 Java 虚拟机。
错误:指定的大小超过了最大可表示大小。
错误:最大堆大小无效:-Xmx4g
为此在项目 gradle.properties 中设置 org.gradle.jvmargs=-Xmx5120M。
错误:指定的大小超过了最大可表示大小。
错误:指定的大小超过了最大可表示大小。
错误:最大堆大小无效:-Xmx4g
错误:错误:无法创建 Java 虚拟机。 :app:transformClassesWithDexForDebug 失败
错误:错误:发生了致命异常。程序将退出。
错误:错误:无法创建 Java 虚拟机。
错误:最大堆大小无效:-Xmx4g
目前大约有 989 MB。
为了加快构建速度,请将 Gradle 守护程序的最大堆大小增加到 5120 MB 以上。
要在进程中运行 dex,Gradle 守护进程需要更大的堆。
【问题讨论】:
显示build.gradle
【参考方案1】:
您应该在build.gradle
部分添加javaMaxHeapSize
。
android
compileSdkVersion //
buildToolsVersion //
dexOptions
javaMaxHeapSize "4g"
您可以访问以获取更多信息Android Gradle: What is javaMaxHeapSize “4g”?
【讨论】:
这条线的缺点是什么?你也能详细说明一下吗? 我在我的 gradle 中使用了这个,但没有任何类型的效果 @Manish 在问题部分发布您的build.gradle
@Manish 阅读 ***.com/questions/37090135/…
我查看并点击该链接,但运行后在安装 apk 时显示此错误。【参考方案2】:
在应用程序标签的 MenifestFile 中添加 android:largeHeap="true"
。
【讨论】:
以上是关于我得到执行异常和大堆错误的主要内容,如果未能解决你的问题,请参考以下文章