アプリを実行するたびにこのGradleエラーが発生します。エラーは次のとおりです。
Dexをインプロセスで実行するには、Gradleデーモンに大きなヒープが必要です。現在、約910 MBです。
ビルドを高速化するには、Gradleデーモンの最大ヒープサイズを2048 MB以上に増やします。
これを行うには、プロジェクトgradle.propertiesでorg.gradle.jvmargs = -Xmx2048Mを設定します。詳細については、 https://docs.gradle.org/current/userguide/build_environment.html を参照してください
これが私のbuild.gradle(Module:app)ファイルです:
apply plugin: 'com.Android.application'
Android {
compileSdkVersion 23
buildToolsVersion "23.0.3"
defaultConfig {
applicationId "mobileapp.tech2dsk"
minSdkVersion 15
targetSdkVersion 23
versionCode 1
versionName "1.0"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-Android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
testCompile 'junit:junit:4.12'
compile 'com.Android.support:appcompat-v7:23.3.0'
compile 'com.Android.support:design:23.3.0'
}
そして、ここに私のbuild.gradle(Project)ファイルがあります:
// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {
repositories {
jcenter()
}
dependencies {
classpath 'com.Android.tools.build:gradle:2.1.0'
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
}
allprojects {
repositories {
jcenter()
}
}
task clean(type: Delete) {
delete rootProject.buildDir
}
ここに私のgradle.propertiesファイルがあります:
# Project-wide Gradle settings.
# IDE (e.g. Android Studio) users:
# Gradle settings configured through the IDE *will override*
# any settings specified in this file.
# For more details on how to configure your build environment visit
# http://www.gradle.org/docs/current/userguide/build_environment.html
# Specifies the JVM arguments used for the daemon process.
# The setting is particularly useful for tweaking memory settings.
# Default value: -Xmx10248m -XX:MaxPermSize=256m
# org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8
# When configured, Gradle will run in incubating parallel mode.
# This option should only be used with decoupled projects. More details, visit
# http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects
# org.gradle.parallel=true
Build.gradleに追加します
Android {
dexOptions {
javaMaxHeapSize "4g"
}
}
2017年6月25日から更新
Google IO 2017では、このトピックに関するいくつかの更新がありました。 dexOptionsにフラグを設定することは推奨されないため、次のようなものがある場合は削除できます。
dexOptions {
javaMaxHeapSize "2g"
}
元の答え:
Android Studio 2.1は、VMをGradleと共有するDex In Processを有効にして、ビルド時間を改善します。このため、これらのDexプロセスを組み込むには、Gradleデーモンのサイズを大きくする必要があります。
少なくとも2ギガのメモリが必要ですが、余裕があれば3ギガで試すことができます。
gradle.properties。
org.gradle.jvmargs=-Xmx3072m
デフォルトでは、Java最大ヒープサイズは1ギガバイトですが、build.gradleファイルで変更した場合は...
build.gradle(アプリ)
dexOptions {
javaMaxHeapSize "2g"
}
...それに応じてGradleデーモンのサイズを変更する必要があります(ヒープに合わせて大きくする必要があります)。
ノート:
私は答えには遅すぎることを知っていますが、それが誰かに役立つことを願っています
私はたくさんのことを試してみましたが、私にとっては何も機能しませんが、フォローやgradle.propertiesも私の場合は機能しません
Android {
dexOptions {
javaMaxHeapSize "4g"
}
}
また、gradle.propertiesでAddを試すことができます:
org.gradle.jvmargs=-Xmx2048m
私の場合、問題はCPU使用率です.apkを構築している間に多くのプロセスが実行されていますが、genymotion、skype、safariなどのいくつかのプロセスを強制終了し、キャッシュを無効化/再起動するだけで動作します。
次のディレクトリでgradle.propertiesという名前のファイルを変更または作成します。
Macの場合、/ Users/USER_NAME/.gradle/gradle.properties
Linuxの場合、/ home/USER_NAME/.gradle/gradle.properties
Windowsの場合、C:\ Users\USER_NAME.gradle\gradle.properties
上記の変更を適用します。最後に、次のようになります。
org.gradle.daemon=true
# When configured, Gradle will run in incubating parallel mode.
# This option should only be used with decoupled projects. More details, visit
# http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects
org.gradle.parallel=true
org.gradle.configureondemand=true
# Specifies the JVM arguments used for the daemon process.
# The setting is particularly useful for tweaking memory settings.
# Default value: -Xmx10248m -XX:MaxPermSize=256m
org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8
このリンクを参照してください https://tausiq.wordpress.com/2015/02/24/Android-speed-up-gradle-build-process-in-Android-studio/
このようにbuild.gradle
を変更できます(Veeresh Charantimathが提案したように):
Android {
dexOptions {
javaMaxHeapSize "2g"
}
}
そして、 MultiDex stuff (大きなAndroidプロジェクトに必要になる)をいじる必要があるかもしれません。 しかし、あなたの問題はより単純かもしれません。コンパイルして、不要なライブラリをプロジェクトに含める可能性があります。私の小さなプロジェクトでこの問題に直面しました。これを修正するために私がしたことは次のとおりです。
これをbuild.gradle
から削除しました:
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
}
そして、アプリケーションルートからビルドフォルダーを手動で削除しました。問題が解決しました。
javaMaxHeapSize
とorg.gradle.jvmargs
は相互に排他的であると確信しています。
javaMaxHeapSize
は古い方法であり、dexはプロセスの外部で実行されます。これは、dexプロセスの引数になります。org.gradle.jvmargs
は、gradleプロセス内にdexを使用する新しい方法です。これは、プロセス全体(dexを含む段階的)の最大メモリです。警告が言うことは、org.gradle.jvmargs
は> = javaMaxHeapSize (what you used previously for dex)
+ 512M (an estimation of what's needed for gradle own needs)
でなければならないということです。
したがって、処理中にdexを使用する場合(高速)、javaMaxHeapSize
を気にする必要はありません。 org.gradle.jvmargs
をプロジェクト/マシンの正しい値に設定するだけです。
エラーまたは警告ですか?
時々これは単なる警告であり、私はそれをうまく構築することができます:
:transformClassesWithDexForDebug
To run dex in process, the Gradle daemon needs a larger heap.
It currently has approximately 910 MB.
For faster builds, increase the maximum heap size for the Gradle daemon to more than 2048 MB.
To do this set org.gradle.jvmargs=-Xmx2048M in the project gradle.properties.
For more information see https://docs.gradle.org/current/userguide/build_environment.html
:mergeDebugJniLibFolders UP-TO-DATE
:transformNative_libsWithMergeJniLibsForDebug
:processDebugJavaRes UP-TO-DATE
:transformResourcesWithMergeJavaResForDebug
:validateDebugSigning
:packageDebug
:zipalignDebug
:assembleDebug
:cdvBuildDebug
BUILD SUCCESSFUL
Total time: 3 mins 44.991 secs
Built the following apk(s):
(...)
ビルドの成功を妨げる可能性のある問題は、別の問題かもしれません...
WINDOW'Sで、以下に示すように〜\ Users \UserName\。gradleからgradle.propertiesを開きます:詳細については リンクの説明をここに入力してください
そして、ビルドを高速化するために、以下に示すように、その値を4608Mに最小値に設定してくださいorg.gradle.jvmargs=-Xmx4608M
これを行うと、アプリのビルド速度の昼夜の違いを確認できます...
たとえば、プロジェクトルートのgradle.properties
にあります。
org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m
不在の場合は、このようなファイルを作成してから、org.gradle.jvmargs = -Xmx1536mを追加してください
それ以外の場合は、既に存在する場合、サイズを増やしてください。
私は同じ問題に直面しましたが、私はこの方法で解決しました。
バグがあるようです:
https://code.google.com/p/Android/issues/detail?id=208214
com.Android.tools.build:gradle:2.1.2
を使用してorg.gradle.jvmargs=-Xmx3415M
にdexOptions.javaMaxHeapSize "2g"
を設定すると、エラーメッセージが消えました。