Android Gradle: Что такое javaMaxHeapSize «4g»?

В проекте android, build.gradle file, я прошел через эту строку

dexOptions{ javaMaxHeapSize "4g" } 

Я хотел бы узнать точную цель этого javaMaxHeapSize и что это означает 4g . Какие другие ценности я могу дать?

Как уже упоминалось в ответе выше , просто указать максимальный пул распределения памяти для виртуальной машины Java (JVM) для работы с dex. И это то же самое, что и для java-аргумента -xmx . Из-за его исходных кодов отсюда его сеттер выглядит так:

 if (theJavaMaxHeapSize.matches("\\d+[kKmMgGtT]?")) { javaMaxHeapSize = theJavaMaxHeapSize } else { throw new IllegalArgumentException( "Invalid max heap size DexOption. See `man java` for valid -Xmx arguments.") } 

Итак, вы можете видеть, что принятое значение должно соответствовать \d+[kKmMgGtT]? шаблон, и, следовательно, нет, он даже ссылается на man java чтобы узнать, как установить -xmx . Здесь вы можете прочитать справочную страницу . И в нем говорится, что этот флаг:

Укажите максимальный размер пула распределения памяти в байтах. Это значение должно быть кратно 1024 больше, чем 2 МБ. Добавьте букву k или K, чтобы указать килобайты, или m или M, чтобы указать мегабайты. Значение по умолчанию выбирается во время выполнения на основе конфигурации системы.

В вашем примере 4g – 4 гигабайта, и это максимальный размер кучи для работы dex.

Это недокументированный вариант увеличения размера кучи для работы с dex: https://groups.google.com/d/msg/adt-dev/P_TLBTyFWVY/4TPJ2YY6khUJ

 dexOptions{ javaMaxHeapSize "4g" } 

после написания этого в build.gradle перейдите в gradle.properties и включите эту строку:

 org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8 
  • Ошибка получения родительского элемента для элемента: ресурс не найден, который соответствует указанному имени после обновления до AppCompat v23
  • Как использовать библиотеку поддержки Renderscript с Gradle
  • Зависимость игнорируется из-за конфликта Android-студия
  • как я могу добавить файл helpl в студию Android (из примера выставления счетов в приложении)
  • Ошибка: (1, 0) Плагин с id 'com.android.application' не найден
  • Android Gradle Apache HttpClient не существует?
  • Использование библиотеки ViewPagerIndicator с Android Studio и Gradle
  • NoClassDefFoundError после обновления IntelliJ IDEA
  • Ошибка построения gradleиента не выполняется
  • Android Studio - нет отлаживаемых приложений
  • Создание JavaDocs с плагином Android Gradle
  • Interesting Posts

    Вставка / обновление многих из многих структур Entity Framework. Как мне это сделать?

    Поддержка арабского текста для Android Emulator

    WebView Rendering Issue в Android KitKat

    Полностью заблокируйте компьютер и заставите его использовать одно приложение

    Eclipse HotKey: как переключаться между вкладками?

    Ограничение сетевых подключений к определенным сайтам при перемещении / привязке (в окнах)

    Развертывание приложения RoR для Heroku с помощью SQLite 3 не выполняется

    Преобразование String в Int в EF 4.0

    Распознавание латинских знаков – определение цветового диапазона для сравнения пикселей

    Алгоритм сравнения двух изображений в C #

    Как создать таблицу с помощью ASCII в консоли?

    Rails не правильно декодирует JSON из jQuery (массив становится хешем с целыми ключами)

    Случайное перемещение папки в информацию о системном томе

    Как сделать ssh без пароля (настройка ssh ключей не работает)?

    Как нам получить отдельную запись, когда / устарел в версии 2.4?

    Давайте будем гением компьютера.