繁体   English   中英

运行单元测试时将 Android Gradle 插件从 3.5.3 更新到 3.6.1 后出现 OutOfMemoryError

[英]Got OutOfMemoryError after update Android Gradle Plugin to 3.6.1 from 3.5.3 when run unit test

从 3.5.3 更新到使用 Android Gradle 插件 3.6.1 后,我们的单元测试不断随机获取 OutOfMemoryError 异常。

这些是崩溃日志:

 Caused by: com.android.ide.common.workers.WorkerExecutorException: 1 exception was raised by workers: java.lang.OutOfMemoryError at com.android.ide.common.workers.ExecutorServiceAdapter.await(ExecutorServiceAdapter.kt:108) at com.android.ide.common.workers.ExecutorServiceAdapter.close(ExecutorServiceAdapter.kt:118) at kotlin.io.CloseableKt.closeFinally(Closeable.kt:53) at com.android.build.gradle.internal.res.GenerateLibraryRFileTask.doFullTaskAction(GenerateLibraryRFileTask.kt:120) at com.android.build.gradle.internal.tasks.IncrementalTask.handleIncrementalInputs(IncrementalTask.kt:107) at com.android.build.gradle.internal.tasks.IncrementalTask.access$handleIncrementalInputs(IncrementalTask.kt:64) at com.android.build.gradle.internal.tasks.IncrementalTask$taskAction$$inlined$recordTaskAction$1.invoke(AndroidVariantTask.kt:73)

作为我的调查。 AGP 3.6.x 改变了生成 R 文件的方式。 崩溃发生在这行代码中: https : //android.googlesource.com/platform/tools/base/+/studio-master-dev/build-system/gradle-core/src/main/java/com/ android/build/gradle/internal/res/GenerateLibraryRFileTask.kt#120

到目前为止,我尝试过的是:

  1. 尝试使用一些 gradle 标志。 但到目前为止,还没有运气。

    • android.enableGradleWorkers=true/false
    • kapt.use.worker.api=true/false
    • kotlin.parallel.tasks.in.project=true/false
    • android.useCompileClasspathLibraryRClasses=false
  2. 使用一些 testOptions 标志( https://docs.gradle.org/current/dsl/org.gradle.api.tasks.testing.Test.html ),例如 forkEvery、maxParallelForks。 但我不确定它会有所帮助,因为失败发生在构建短语上。

    我正在尝试获取 heapdump,但这有点困难,因为 OOM 是随机发生的。

    我的设置:

    • 摇篮版本:6.2.2
    • Android Gradle 插件:3.6.1
    • Android SDK Build-Tools 28.0.3 我通过命令行工具运行单元测试。 它应该与AS无关。

如果你们中的任何人建议任何解决方案或方向进行调查,我们将不胜感激

仅供参考。 我也必须在谷歌这里发一个问题https://issuetracker.google.com/u/1/issues/151460310

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM