存在文件命名问题的GitHub项目,原作者为何可正常构建?
问题解答
原作者能成功构建的几种可能原因
- AGP版本差异:旧版Android Gradle Plugin(AGP)对资源文件名的校验规则更宽松,早期版本允许文件名包含
-这类字符,而新版AGP(搭配Android Studio新版本)严格执行Android资源命名规范——仅允许小写字母、数字、下划线和点。原作者可能使用的是较老的AGP版本,因此未触发报错。 - 资源存放路径不同:如果原作者将带
-的png和txt文件放在非资源目录(比如assets/文件夹,或是res/之外的普通目录),这些文件不会被Android资源编译器(aapt/aapt2)处理,自然不会触发命名校验。你下载后可能误将它们移至drawable/等资源目录,才引发了报错。 - 构建配置绕过校验:原作者可能在
build.gradle中添加了特殊配置,比如关闭部分资源校验规则,或是通过自定义脚本在构建时自动将文件名中的-替换为_,本地构建能正常完成,但提交的源码仍保留带-的文件名。 - 未修复错误就提交:也不排除原作者自己没遇到这些错误(比如仅在特定环境测试,或是没运行到调用这些资源的代码路径),直接提交了存在问题的代码。
关于txt改xml后的额外报错
将txt重命名为xml后出现新报错,大概率是因为文件内容不符合XML语法规范。原作者若将其当作普通文本文件放在非资源目录,不会被当作XML资源解析;你移至资源目录并修改后缀后,aapt会尝试解析它为XML资源,内容不规范就会触发报错。
内容的提问来源于stack exchange,提问作者Rahul Iyer
相关产品推荐
相关产品推荐

