构建后strings.xml中字符变为问号问题求助(Windows10 1607/AS3.0.1)
解决Android Studio构建后strings.xml字符变为问号的问题
我之前在Windows 10旧版本搭配早期AS版本时也碰到过一模一样的问题,核心基本都是编码配置或者缓存异常导致的,给你几个按优先级排序的解决方案:
1. 检查并统一Android Studio的编码设置
这是最常见的原因,Windows系统默认编码和AS要求的UTF-8不匹配会导致字符乱码/转成问号:
- 打开
File > Settings > Editor > File Encodings - 确保以下三项全部设置为
UTF-8:- IDE Encoding
- Project Encoding
- Default encoding for properties files
- 务必勾选Transparent native-to-ascii conversion选项(这个选项负责自动处理非ASCII字符的转义,避免构建时丢失)
- 点击
Apply后重启Android Studio生效
2. 确认strings.xml文件本身的编码
有时候单个文件的编码不是UTF-8,即使全局设置对了也会出问题:
- 在AS中打开strings.xml,看窗口右下角的编码标识(比如显示
UTF-8),如果显示其他编码(比如GBK),点击编码选择Convert to UTF-8 - 也可以用外部编辑器(比如Notepad++)打开strings.xml,查看编码并转换为UTF-8后保存,再回到AS中同步
3. 在build.gradle中强制指定编码
给项目的构建过程明确指定编码,避免Gradle用系统默认编码处理:
打开app模块下的build.gradle文件,在android节点中添加以下配置:
android { // 其他已有配置... compileOptions { encoding "UTF-8" sourceCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8 } }
添加完成后点击Sync Project with Gradle Files,再执行Build > Rebuild Project
4. 清理AS缓存并重新构建
有时候缓存损坏也会导致构建时出现奇怪的编码问题:
- 点击
File > Invalidate Caches / Restart... - 在弹出的窗口中选择
Invalidate and Restart - 重启完成后,先执行
Build > Clean Project,再执行Build > Rebuild Project
5. 排查特殊字符问题
如果以上方法都没用,检查strings.xml中是否包含一些系统难以识别的生僻字符或特殊符号,尝试替换成常用字符后再构建测试,确认是否是字符本身的问题
内容的提问来源于stack exchange,提问作者Janak
相关产品推荐
相关产品推荐

