问题
Android Studio 执行 Run ‘xxx’ with coverage 报错问题
- Gradle Test Executor 写入标准输入时出现 IOException
- 无法打开 zip 文件或 JAR 清单缺失,特别是
intellij-coverage-agent-1.0.744.jar
。
> Task :processDebugUnitTestJavaRes NO-SOURCE
Could not write standard input to Gradle Test Executor 2.
java.io.IOException: �ܵ����ڱ��رա�
at java.base/java.io.FileOutputStream.writeBytes(Native Method)
at java.base/java.io.FileOutputStream.write(FileOutputStream.java:349)
at java.base/java.io.BufferedOutputStream.flushBuffer(BufferedOutputStream.java:81)
at java.base/java.io.BufferedOutputStream.flush(BufferedOutputStream.java:142)
at org.gradle.process.internal.streams.ExecOutputHandleRunner.writeBuffer(ExecOutputHandleRunner.java:98)
at org.gradle.process.internal.streams.ExecOutputHandleRunner.forwardContent(ExecOutputHandleRunner.java:85)
at org.gradle.process.internal.streams.ExecOutputHandleRunner.run(ExecOutputHandleRunner.java:64)
at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:64)
at org.gradle.internal.concurrent.AbstractManagedExecutor$1.run(AbstractManagedExecutor.java:47)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
at java.base/java.lang.Thread.run(Thread.java:833)
> Task :testDebugUnitTest FAILED
Error opening zip file or JAR manifest missing : C:\Users\admin\AppData\Local\Google\AndroidStudio2024.1\testAgent\intellij-coverage-agent-1.0.744.jar
Error occurred during initialization of VM
agent library failed to init: instrumentFAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':testDebugUnitTest'.
> Process 'Gradle Test Executor 2' finished with non-zero exit value 1
分析 & 方案
Gradle IOException
更新环境配置或清理环境
增加 Gradle 内存:在 gradle.properties
文件中增加 Gradle 的最大内存限制:
org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m
这条是默认都有值的,如应用内配置
org.gradle.jvmargs=-Xmx2048M -Dkotlin.daemon.jvm.options\="-Xmx1536M"
JAR 文件问题
-
下载缺失的 JAR 文件:如果文件缺失,您可以试着从网络上寻找并下载该 JAR 文件,并将其放入适当的目录。
- 检查文件是否被加密了:如果文件被加密会报同样的错误。