Как я могу обойти Android-компилятор, предоставляющий исключения Java кучи пространства?

Недавно я попытался добавить библиотеку Apache Commons' Math, но во время компиляции столкнулся со следующим исключением:

Ошибка: не удалось выполнить задачу ': приложение:transformClassesWithPreJackPackagedLibrariesForDebug'. com.android.sched.scheduler.RunnerProcessException: ошибка во время выполнения "CodeItemBuilder" в "static void org.apache.commons.math3.util.FastMathLiteralArrays.() (FastMathLiteralArrays.java:28-5102)": пространство кучи Java

Я думаю, что проблема похожа на проблемы, возникающие в следующих вопросах:

Ошибка: не удалось выполнить задачу ': app: transformClassesWithMultidexlistForDebug'. > java.lang.UnsupportedOperationException (без сообщения об ошибке)

Android - ошибка: не удалось выполнить задачу ':app:transformClassesWithDexForRelease'

1 ответ

Решение

Как указывает исключение, существует проблема с доступным пространством кучи. Чтобы увеличить размер пространства кучи, выделенного для компилятора Jack, вы должны запуститься вне процесса, а затем применить соответствующий параметр dex:

defaultConfig {
    jackOptions {
        enabled true
        jackInProcess false
    }
    dexOptions {
        javaMaxHeapSize "2048M"
    }
}

С их помощью я смог обойти ошибку компиляции.

Другие вопросы по тегам