无法为Android应用添加法语支持,构建时编译报错
解决Android法语资源编译崩溃问题
问题现象
为Android应用添加法语支持后,编译时出现以下崩溃:
Caused by: com.android.aaptcompiler.ResourceCompilationException: Failed to compile values resource file C:\Users\Me\AndroidStudioProjects\devapp\app\build\intermediates\incremental\debug\mergeDebugResources\merged.dir\values-fr\values-fr.xml at com.android.aaptcompiler.ResourceCompiler.compileTable(ResourceCompiler.kt:192) at com.android.aaptcompiler.ResourceCompiler.access$compileTable(ResourceCompiler.kt:1) at com.android.aaptcompiler.ResourceCompiler$getCompileMethod$1.invoke(ResourceCompiler.kt:138) at com.android.aaptcompiler.ResourceCompiler$getCompileMethod$1.invoke(ResourceCompiler.kt:138) at com.android.aaptcompiler.ResourceCompiler.compileResource(ResourceCompiler.kt:123) ... 32 more Caused by: java.lang.IllegalStateException: Can not extract resource from com.android.aaptcompiler.ParsedResource@26f8f972.,Can not extract resource from com.android.aaptcompiler.ParsedResource@76fec1f4.,Can not extract resource from com.android.aaptcompiler.ParsedResource@1d54bbcc. at com.android.aaptcompiler.TableExtractor.extractResourceValues(TableExtractor.kt:270) at com.android.aaptcompiler.TableExtractor.extract(TableExtractor.kt:181) at com.android.aaptcompiler.ResourceCompiler.compileTable(ResourceCompiler.kt:188) ... 36 more
使用相同方式添加英语、西班牙语支持均正常,通过strings.xml翻译编辑器生成多语言资源,怀疑单引号转义无效。
解决步骤
- 检查源资源文件:打开
app/src/main/res/values-fr/strings.xml(而非build目录下的中间文件),定位报错对应的资源项,排查XML语法问题(如未闭合标签、属性缺失)。 - 修正单引号转义:
- 若字符串用双引号包裹,单引号可直接使用:
<string name="test">C'est un exemple</string> - 若字符串用单引号包裹,需用反斜杠转义:
<string name='test'>C\'est un exemple</string> - 避免使用
&apos;(这是双重转义,会导致解析错误)。
- 若字符串用双引号包裹,单引号可直接使用:
- 排查特殊字符与不可见字符:法语中的
é、à、ç等特殊字符需确保是UTF-8编码,同时检查是否存在翻译编辑器引入的不可见控制字符(可通过纯文本编辑器开启显示所有字符功能排查)。 - 清理缓存重建:执行
File > Invalidate Caches... > Invalidate and Restart清理Android Studio缓存,然后重新编译项目。 - 手动创建资源文件:若翻译编辑器生成的文件存在问题,可复制英语
strings.xml的结构,手动填入法语翻译,规避编辑器自动生成的错误。
内容的提问来源于stack exchange,提问作者mohammed_sajid
相关产品推荐
相关产品推荐

