如何绕过Android的jack编译器给出Java堆空间异常?

时间:2017-03-20 05:41:59

标签: android apache-commons-math jack-compiler

我最近尝试添加Apache Commons的Math库,但在编译期间遇到了以下异常:

  

错误:任务':app:transformClassesWithPreJackPackagedLibrariesForDebug'的执行失败。 com.android.sched.scheduler.RunnerProcessException:在'static void org.apache.commons.math3.util.FastMathLiteralArrays。()(FastMathLiteralArrays.java:28-5102)'上的'CodeItemBuilder'运行期间出错:'Java堆空间

我认为问题类似于这些问题中遇到的问题:

Error:Execution failed for task ':app:transformClassesWithMultidexlistForDebug'. > java.lang.UnsupportedOperationException (no error message)

Android- Error:Execution failed for task ':app:transformClassesWithDexForRelease'

1 个答案:

答案 0 :(得分:0)

正如异常所述,可用堆空间存在问题。要增加分配给Jack编译器的堆空间大小,必须在进程外运行,然后应用适当的dex选项:

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

通过这些,我能够克服编译错误。