Android Studio编写的代码被自动替换为乱码,该如何解决?
问题发生原因
- IDE异常终止写入:关闭Android Studio时,若后台仍在执行代码索引、增量构建或自动保存任务,此时系统资源不足、IDE进程被强制结束,会导致正在写入的.java文件内容被错误填充为
null占位字节。 - 磁盘写入错误:项目存储磁盘存在坏道、系统磁盘缓存出错,会导致部分文件的实际写入内容和预期不符,出现乱码。
- 版本已知bug:2021.1.1及部分更早版本的Android Studio存在自动保存触发的文件损坏漏洞,开启无操作自动保存、提交前自动格式化功能时该问题触发概率更高。
- 编码解析错误:若项目文件曾被其他非UTF-8编码的编辑器修改保存,编码转换失败会导致内容被转译为无意义字符。
修复方案
- 本地历史恢复(优先推荐):Android Studio默认会保存文件的近期修改记录,右键损坏的Activity文件,选择
Local History->Show History,在时间线面板中找到代码损坏前的正常版本,点击恢复按钮即可还原内容。 - 构建产物反编译恢复:若近期成功运行过项目,可以进入项目目录
app/build/intermediates/javac/debug/classes/路径下找到对应Activity的编译后.class文件,使用反编译工具还原Java代码。 - 版本控制恢复:如果项目接入了Git、SVN等版本管理工具,直接回滚到最近一次正常提交的版本即可恢复代码。
- 临时文件恢复:若以上方式均无效,可以到系统临时文件目录、Android Studio缓存目录中扫描查找对应.java文件的临时副本。
后续预防建议
- 及时更新Android Studio到最新稳定版,关闭不必要的自动保存触发条件。
- 项目必须接入版本控制工具,每完成一个功能点就提交一次记录。
- 定期备份整个项目目录到其他磁盘或云存储。
内容的提问来源于stack exchange,提问作者Arnav
相关产品推荐
相关产品推荐

