75

アプリを実行するたびに、この 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
4

13 に答える 13

51

Build.gradle に追加します

android {
 dexOptions {
    javaMaxHeapSize "4g"
  }
}

詳細 - Android Gradle: javaMaxHeapSize "4g" とは?

于 2016-05-07T15:18:59.200 に答える
24

それをgradle.propertiesに残すだけです:

org.gradle.jvmargs=-Xmx2048m 

その記事を参考にしてみてください。

于 2016-05-13T09:13:34.660 に答える
14

答えには遅すぎることはわかっていますが、誰かの役に立てば幸いです

私は多くのことを試してみましたが、多くのことを検索しましたが、次のものが含まれていて何もうまくいきません.

android {
  dexOptions {
    javaMaxHeapSize "4g"
  }
}

また、gradle.propertiesに Add を試すこともできます:

org.gradle.jvmargs=-Xmx2048m 

私の場合、問題はCPU使用率であり、apkをビルドしている間に多くのプロセスが実行されています.genymotion、skype、safariなどのいくつかのプロセスを強制終了し、キャッシュを無効にして再起動するよりもうまくいきます.

于 2016-05-13T12:04:47.690 に答える
3

あなたは先に進んでbuild.gradleそのように変更することができます(Veeresh Charantimathが提案したように):

android {
 dexOptions {
    javaMaxHeapSize "2g"
 }
}

そして、MultiDex をいじる必要があるかもしれません(大規模な Android プロジェクトで必要になります)。しかし、あなたの問題はもっと簡単かもしれません。必要のないライブラリをコンパイルしてプロジェクトに含める可能性があります。私の小さなプロジェクトでこの問題に直面しました。これを修正するために私がしたことは次のとおりです。

からこれを削除しましたbuild.gradle

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
}

そして、ビルド フォルダーをアプリケーション ルートから手動で削除しました。問題が解決しました。

于 2016-06-13T03:19:17.437 に答える
2

エラーですか、それとも警告ですか?

時々、これは単なる警告であり、私はそれをうまくビルドすることができます:

: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):
(...)

したがって、ビルドの成功を妨げる可能性のある問題は、別の問題である可能性があります...

于 2016-09-06T16:17:37.013 に答える
1

バグがあるようです:

https://code.google.com/p/android/issues/detail?id=208214

com.android.tools.build:gradle:2.1.2I set org.gradle.jvmargs=-Xmx3415Mwithを使用するdexOptions.javaMaxHeapSize "2g"と、エラー メッセージが表示されなくなりました。

于 2016-07-03T15:57:57.137 に答える
1
  • 最初に、プロジェクトのルート ディレクトリにある gradle.propertises を確認してください。

不在の場合は、このようにファイルを作成し、 org.gradle.jvmargs=-Xmx1536m を追加してください

それ以外の場合は、サイズを大きくしてください。

私はこの方法で解決した同じ問題に直面しました。

于 2017-05-15T16:52:22.847 に答える
1

たとえば、gradle.propertiesプロジェクト ルートの .

org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m

于 2018-08-24T00:24:46.380 に答える
-4

これを試して

defaultConfig {
    ...

    // Enabling multidex support.
    multiDexEnabled true
}
于 2016-06-07T06:00:00.517 に答える