AndroidStudioを3.5Beta 1にアップデートしたところ、
JVMヒープスペースが使い果たされたためにデーモンが期限切れになる
ビルドの実行中にメッセージが表示されます。また、ビルドの完了に時間がかかります。誰かがこれに関して何か考えを持っていますか?
AndroidStudioを3.5Beta 1にアップデートしたところ、
JVMヒープスペースが使い果たされたためにデーモンが期限切れになる
ビルドの実行中にメッセージが表示されます。また、ビルドの完了に時間がかかります。誰かがこれに関して何か考えを持っていますか?
回答:
以下を構成することで、ReactNativeプロジェクトでこれを解決することができました。
// gradle.properties
org.gradle.daemon=true
org.gradle.configureondemand=true
org.gradle.jvmargs=-Xmx4g -XX:MaxPermSize=2048m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8
そして
// app/build.gradle
android {
dexOptions {
javaMaxHeapSize "3g"
}
}
解決策は、Androidビルドメモリを増やすことです。
アプリにモジュールを追加すると、Androidビルドシステムに信じられないほどの要求が課せられ、デフォルトのメモリ設定は機能しなくなります。Androidビルド中のOutOfMemoryErrorsを回避するには、/ android /gradle.propertiesにある代替のgradleメモリ設定のコメントを解除する必要があります。
org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8
gradle.propertiesはandroidフォルダー内にあります。
PS
私たちはこれを何をしていて、なぜそれが役立つのですか?
全体を理解するためのいくつかの基本的な用語を明確にしましょう。
デーモン:-デーモンは、対話型ユーザーの直接の制御下にあるのではなく、バックグラウンドプロセスとして実行されるコンピュータープログラムです。
Android Studio 2.1は、新しい機能であるDex In Processを有効にします。これにより、完全クリーンビルドの速度が劇的に向上し、インスタント実行のパフォーマンスが向上します。
利用するにはデックスでのプロセスは、あなたのgradle.propertiesファイルを変更してに割り当てるメモリの量増やす必要がありますのGradleデーモンVM org.gradle.jvmargsプロパティを使用して、2 GB以上に、1 Gbのでは:
デーモンプロセスに使用されるJVM引数を指定します。この設定は、メモリ設定を微調整する場合に特に便利です。
org.gradle.jvmargs=-Xmx2048m
デフォルト値:
-Xmx10248m -XX:MaxPermSize=256m
デフォルトのGradleデーモンVMメモリ割り当ては1ギガバイトです。これはdexInProcessをサポートするには不十分であるため、これを利用するには、少なくとも2ギガバイトに設定する必要があります。
Dex in processは、Gradleと共有されている単一のVM内で複数のDEXプロセスを実行できるようにすることで機能します。そのため、有効にする前に追加のメモリを割り当てる必要があります。そのメモリはGradleと複数のDEXプロセス間で共有されます。
モジュールレベルのbuild.gradleファイルのjavaMaxHeapSizeをデフォルトの1ギガバイトを超えて増やした場合は、それに応じてGradleデーモンに割り当てられたメモリを増やす必要があります。
十分なメモリが割り当てられている場合、Dex in Processはデフォルトで有効になり、全体的なビルドパフォーマンスが向上し、複数の並列VMインスタンスを起動するオーバーヘッドがなくなります。その結果、インスタント実行、増分ビルド、完全ビルドを含むすべてのビルド時間が大幅に改善されます。
ソース:https: //medium.com/google-developers/faster-android-studio-builds-with-dex-in-process-5988ed8aa37e
org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8
をgradle.propertiesに入れてみてください。それでも機能しない場合は、申し訳ありませんが、それを修正する方法がわかりません。
org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8
をandroid/gradle.properties
外します。ありがとう!@KailashUniyal