Виникла проблема з пам'яттю після оновлення buildToolsVersion '23 .0.1 'в студії Android


75

У мене дуже часто виникає проблема з пам'яттю після оновлення buildToolsVersion '22.0.1'до. buildToolsVersion '23.0.1'Я справді розгублений і не знаю, як вирішити цю проблему, оскільки ця помилка відображається лише у buildToolsверсії 23.0.1. Тоді як він працює нормально, коли я зміню його на 22.0.1. Будь ласка, допоможи мені. Я публікую повідомлення про помилку, яку я отримую, наступним чином,

Uncaught translation error: java.util.concurrent.ExecutionException: java.lang.OutOfMemoryError: Java heap space
Uncaught translation error: java.util.concurrent.ExecutionException: java.lang.OutOfMemoryError: Java heap space
Uncaught translation error: java.util.concurrent.ExecutionException: java.lang.OutOfMemoryError: GC overhead limit exceeded
Uncaught translation error: java.util.concurrent.ExecutionException: java.lang.OutOfMemoryError: Java heap space
Uncaught translation error: java.util.concurrent.ExecutionException: java.lang.OutOfMemoryError: GC overhead limit exceeded
Uncaught translation error: java.util.concurrent.ExecutionException: java.lang.OutOfMemoryError: Java heap space
Error:Execution failed for task ':app:transformClassesWithDexForDebug'.
> com.android.build.transform.api.TransformException: com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process 'command 'C:\Program Files\Java\jdk1.7.0_25\bin\java.exe'' finished with non-zero exit value 1

build.gradle

apply plugin: 'com.android.application'

android {
    compileSdkVersion 23
    buildToolsVersion '23.0.1'

    defaultConfig {
        applicationId "com.example.app"
        minSdkVersion 14
        targetSdkVersion 23
        versionCode 1
        versionName "1.0"
        // Enabling multidex support.
        multiDexEnabled true
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {

    compile 'com.android.support:appcompat-v7:23.0.1'
    compile 'com.android.support:support-v4:23.0.1'
    compile 'com.android.support:design:23.0.0'
    compile 'com.android.support:cardview-v7:23.0.1'
    compile 'com.android.support:recyclerview-v7:23.0.1'
    compile 'com.android.support:palette-v7:23.0.1'
    compile 'com.google.android.gms:play-services:7.5.0'
}

Заздалегідь спасибі.

Відповіді:


200

Додайте це до закриття Android у файлі build.gradle :

dexOptions {
    javaMaxHeapSize "4g"
}

Файл JAR Android Studio Google, через який обмежено накладні витрати GC, перевищено


У мене була та сама проблема, і це спрацювало. Але чому виникло це питання?
Л. Свіфтер

@L. Швидше виявляється, що обмеження накладних витрат GC перевищено. Здається, що Java потребує більше місця в купі, ніж за замовчуванням.
mhdjazmati

та ж проблема вирішена в Android Studio 2.2 Beta 2 / Ubuntu 16.04 LTS
Пауло Мендонса

29

Прийнятий відповідь працює , але я сплутати трохи про те, де поставити dexOptionsна мою build.gradle. Ми фактично помістили його в розділ для android.

Ось приклад фрагмента:

android {

    dexOptions {
        javaMaxHeapSize "4g"
    }

    ......
}

13

Насправді для мене працювало більш складне рішення, яке поєднує все зверху, плюс включення мультидексу у файлі build.gradle для модуля.

A. Додайте цей рядок у розділі defaultConfig, щоб увімкнути multiDex

// Enabling multidex support.
multiDexEnabled true

Б. Потім встановіть dexOptions , наприклад:

dexOptions {
    incremental true
    javaMaxHeapSize "4G"
}

C. Після зміни на multidex і встановлення купи на 4g, може статися помилка переповнення, яка призведе до того, що я розкомментую та зміню рядок jvmargs з файлу gradle.properties проекту, наприклад:

org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8

Ці значення можуть різнитися залежно від вашої машини. Ви також можете використовувати подвійні значення.


6

На додаток до вищезазначеної процедури, існує ще одна можливість встановити аргументи jvm.

org.gradle.jvmargs="-Xms2g -Xmx4g" in gradle.properties .

Налаштування призначено для налаштування пам'яті. Xms: Запуск пам’яті Xmx: Макс. Пам’ять


2

Я вирішив цю проблему

  1. перейдіть до "Система"
  2. Дотримання екологічних умов
  3. Відредагуйте значення _JAVA_OPTIONS з "-Xms1024m" на "-Xms2048m"
    (якщо не існує _JAVA_OPTIONS, ніж створити, натисніть кнопку "Нова кнопка")
  4. гаразд та збережіть Перезапустіть

Я думаю, це буде корисним і для вас. якщо воно корисно підтримати цю відповідь.


Так @Ali це для Windows
Дінеш

0
dexOptions {
        javaMaxHeapSize "4g"
    }

Я зіткнувся з тією ж проблемою, додавши це у файл build.gradle (рівень модуля), вирішив мою проблему


Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.