You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Android Studio执行gradlew构建时遇IO异常及测试任务失败求助

解决Gradle Test Executor执行时的"找不到主类"错误

错误日志

Could not write standard input to Gradle Test Executor 1.
java.io.IOException: The pipe is being closed
        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:840)

> Task :app:testDebugUnitTest FAILED
Error: Could not find or load main class Files\nodejs;.;C:\MyProjects\rtr05-083\MyAndroid\01-IDE\app\src\testDebug\jniLibs;C:\MyProjects\rtr05-083\MyAndroid\01-IDE\app\src\test\jniLibs
Caused by: java.lang.ClassNotFoundException: Files\nodejs;/;C:\MyProjects\rtr05-083\MyAndroid\01-IDE\app\src\testDebug\jniLibs;C:\MyProjects\rtr05-083\MyAndroid\01-IDE\app\src\test\jniLibs

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':app:testDebugUnitTest'.
> Process 'Gradle Test Executor 1' finished with non-zero exit value 1

* Try:
> Run with --stacktrace option to get the stack trace.
> Run with --info or --debug option to get more log output.
> Run with --scan to get full insights.
> Get more help at https://help.gradle.org.

BUILD FAILED in 38s
78 actionable tasks: 78 executed

问题分析

错误核心是系统CLASSPATH环境变量包含未加引号的带空格路径,比如C:\Program Files\nodejs,Gradle解析时会把空格后的Files\nodejs误识别为主类名,导致ClassNotFoundException。

解决方案

  • 修复系统CLASSPATH环境变量

    1. 打开系统环境变量设置:右键「此电脑」→「属性」→「高级系统设置」→「环境变量」
    2. 在「系统变量」中找到CLASSPATH,检查其值里的路径
    3. 给所有带空格的路径添加双引号,例如将C:\Program Files\nodejs修改为"C:\Program Files\nodejs"
    4. 保存设置后,重启Android Studio和终端,重新执行构建
  • 临时跳过系统CLASSPATH(无需修改环境变量)
    在终端执行构建命令前,临时清空CLASSPATH:

    set CLASSPATH= && gradlew clean testDebugUnitTest
    

    或PowerShell:

    $env:CLASSPATH = ""; ./gradlew clean testDebugUnitTest
    
  • 额外排查步骤

    • 检查项目build.gradle中test相关配置,确认jniLibs路径未被错误设置
    • 清理Gradle缓存并重新同步:执行gradlew clean build --refresh-dependencies

内容的提问来源于stack exchange,提问作者Guava

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.24 21:46:24