簡體   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