Android Studio发布构建失败:CreateProcess error=206(文件名过长)
解决Android Release构建报错“文件名或扩展名过长”的思路
遇到过几乎一模一样的问题,给你几个针对性的排查和解决方向:
检查Windows长路径支持是否开启
虽然你排查了单个文件路径,但Windows默认的260字符路径限制有时候会有隐性触发的情况,而且不同机器的系统配置可能不一样。家用本可能已经开启了长路径支持,工作本没开:- 打开管理员权限的PowerShell,执行:
New-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\FileSystem" -Name "LongPathsEnabled" -Value 1 -PropertyType DWORD -Force - 重启电脑后再尝试构建。
- 打开管理员权限的PowerShell,执行:
排查Gradle构建时的classpath参数长度
Release构建时,Gradle会把所有依赖的jar包路径拼接到classpath里,哪怕单个路径短,拼接后的总长度可能超过Windows命令行的字符限制(默认是8192)。试试这些优化:- 在项目根目录的
gradle.properties里添加:org.gradle.jvmargs=-Xmx4096m -XX:MaxMetaspaceSize=512m org.gradle.configureondemand=true org.gradle.caching=true - 启用Gradle的classpath规范化,在
settings.gradle里添加版本目录配置(用统一的依赖管理减少重复路径拼接):enableFeaturePreview("VERSION_CATALOGS") dependencyResolutionManagement { repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS) repositories { google() mavenCentral() } versionCatalogs { libs { from(files("gradle/libs.versions.toml")) } } }
- 在项目根目录的
对齐两台机器的环境配置
既然家用本能正常构建,把工作本的配置和家用本完全对齐:- 检查Android Studio版本、Gradle插件版本、Gradle wrapper版本是否完全一致(看项目根目录的
gradle/wrapper/gradle-wrapper.properties); - 检查JDK版本:家用本如果用的是独立JDK,工作本也切换成相同版本的JDK,不要用Android Studio自带的JRE;
- 对比两台机器的环境变量,比如
JAVA_HOME、GRADLE_HOME是否一致。
- 检查Android Studio版本、Gradle插件版本、Gradle wrapper版本是否完全一致(看项目根目录的
彻底清理构建缓存
工作本的缓存可能存在异常,导致生成了奇怪的临时路径:- 执行
./gradlew clean清理项目构建文件; - 删除项目根目录下的
.gradle文件夹; - 删除你设置的临时构建路径
M:\tmp\app_name下的所有内容; - 重新执行
./gradlew assembleRelease。
- 执行
尝试极端短路径测试
把整个项目复制到一个极短的路径下,比如D:\a,然后在这个路径下尝试构建。如果能成功,说明还是某种隐性的路径长度叠加问题(比如某些插件生成的临时文件路径是多层嵌套的)。
内容的提问来源于stack exchange,提问作者prom85
相关产品推荐
相关产品推荐

