![](/img/trans.png)
[英]Run task after packageApplication when using the android gradle plugin
[英]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
到目前为止,我尝试过的是:
尝试使用一些 gradle 标志。 但到目前为止,还没有运气。
使用一些 testOptions 标志( https://docs.gradle.org/current/dsl/org.gradle.api.tasks.testing.Test.html ),例如 forkEvery、maxParallelForks。 但我不确定它会有所帮助,因为失败发生在构建短语上。
我正在尝试获取 heapdump,但这有点困难,因为 OOM 是随机发生的。
我的设置:
如果你们中的任何人建议任何解决方案或方向进行调查,我们将不胜感激
仅供参考。 我也必须在谷歌这里发一个问题https://issuetracker.google.com/u/1/issues/151460310
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.