Windows下Android Studio运行JUnit4测试报错:找不到主类Files\NVIDIA
解决Windows下Android Studio运行JUnit4测试时"Could not find or load main class Files\NVIDIA"错误
在Windows系统的Android Studio中运行JUnit4测试时,出现如下错误:
> Task :app:testDebugUnitTest FAILED Error: Could not find or load main class Files\NVIDIA Caused by: java.lang.ClassNotFoundException: Files\NVIDIA FAILURE: Build failed with an exception. * What went wrong: Execution failed for task ':app:testDebugUnitTest'. > Process 'Gradle Test Executor 18' 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 1s
你的推测正确,该错误源于Java处理带空格的路径(如C:\Program Files\NVIDIA Corporation或C:\Program Files\NVIDIA GPU Computing Tools)时未正确转义,MacOS的路径空格处理机制不同,因此测试可正常运行。以下是具体解决方法:
解决方法
1. 修改gradle.properties配置
在项目根目录的gradle.properties文件中添加以下配置,强制Gradle用引号包裹路径参数,或指定无空格的临时目录:
org.gradle.jvmargs="-Djava.io.tmpdir=C:\\Temp"
2. 迁移JDK到无空格路径
若JDK安装在带空格的路径(如C:\Program Files\Java),将其迁移到无空格路径(如C:\Java\jdk1.8.0_301),再在Android Studio中重新配置:
- 打开
File > Project Structure > SDK Location - 更新
JDK Location为新的无空格路径
3. 配置Gradle测试任务
在app模块的build.gradle文件中,给test任务添加JVM参数,指定无空格临时目录或正确处理类路径:
test { // 指定无空格临时目录 systemProperty 'java.io.tmpdir', 'C:\\Temp' // 或强制包裹类路径 jvmArgs = ['-Djava.class.path="'+classpath.asPath+'"'] }
4. 调整系统环境变量
将系统PATH中带空格的NVIDIA相关路径替换为短路径:
- 打开系统属性 > 高级 > 环境变量
- 编辑
PATH变量,将C:\Program Files\NVIDIA Corporation替换为短路径(如C:\PROGRA~1\NVIDIA~1,可通过命令行dir /x获取对应短路径)
内容的提问来源于stack exchange,提问作者BetaBites
相关产品推荐
相关产品推荐

