Android Studio Giraffe下未自动生成LocaleConfig问题咨询
AGP 8.1自动生成LocaleConfig失效的排查与解决
核心前提排查(官方文档未明确的细节)
AGP 8.1+自动生成LocaleConfig并非完全无门槛,先检查以下几个容易忽略的点:
语言资源目录必须符合规范
必须使用Android标准命名的语言资源目录(如values-en、values-zh-rCN),自定义命名或不符合规则的目录不会被AGP识别,无法触发自动生成逻辑。确认AGP配置未禁用自动生成
检查模块的build.gradle.kts(或build.gradle)中是否存在手动禁用配置:// 若存在这行且值为false,会阻止自动生成,删除或改为true android.generateLocaleConfig = false该配置默认值为
true,但如果被误修改就会失效。找对自动生成文件的位置
自动生成的locale_config.xml不会出现在src目录下,而是在构建输出目录中,比如build/intermediates/locale_config/debug(对应debug构建)。另外,清单中的引用是AGP自动注入到合并后的清单里,需要查看build/intermediates/manifests/full/debug/AndroidManifest.xml才能看到<application android:localeConfig="@xml/locale_config">这行,手动编写的清单文件不会显示该配置。多模块资源合并检查
如果项目包含多个模块,确保主应用模块已正确合并所有依赖模块的语言资源,AGP仅基于主模块合并后的资源列表生成LocaleConfig。
fallback方案:手动配置LocaleConfig
如果自动生成逻辑始终不生效,直接手动配置也能满足需求:
- 在
res/xml目录下创建locale_config.xml,示例内容:
<?xml version="1.0" encoding="utf-8"?> <locale-config xmlns:android="http://schemas.android.com/apk/res/android"> <locale android:name="en"/> <locale android:name="zh-rCN"/> <!-- 添加所有你需要支持的语言代码 --> </locale-config>
- 在
AndroidManifest.xml的<application>标签中添加引用:
android:localeConfig="@xml/locale_config"
内容的提问来源于stack exchange,提问作者Santo
相关产品推荐
相关产品推荐

