You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何修复AAPT报错:string too large to encode UTF-8及R.txt写入失败

解决AAPT的STRING_TOO_LARGE和R.txt写入失败问题

核心问题分析

报错包含两个关联问题:

  1. 单个字符串资源过大,超出AAPT的UTF-8编码限制,被替换为STRING_TOO_LARGE
  2. 因上述异常导致构建时写入R.txt文件失败,触发“数据无效(13)”错误

解决方案

1. 处理超大字符串资源

  • 定位问题字符串:检查res/values/strings.xml及其他本地化strings文件,找出包含大段文本(如完整HTML、JSON、超长描述)的条目。AAPT对单个字符串的大小阈值通常在几十KB左右。
  • 迁移到raw资源:在res目录下新建raw文件夹,将超长文本保存为独立文件(如long_content.txt、config.json),代码中通过getResources().openRawResource(R.raw.long_content)读取内容,避免直接放在字符串资源中。
  • 拆分字符串:若必须使用字符串资源,将超长文本拆分为多个小字符串,在代码逻辑中拼接使用。
  • 压缩文本:对可压缩的重复类文本,先压缩后存储,读取时解压恢复。

2. 解决R.txt写入失败问题

该错误多为字符串异常的连锁反应,解决第一个问题后通常会自动消失。若仍存在:

  • 清理构建缓存:执行命令 gradlew clean(Windows)或 ./gradlew clean(Mac/Linux),清理后重新构建项目。
  • 简化项目路径:将项目移动到无空格、无特殊字符(如括号、中文)的路径下,比如从C:\Users\syed\Desktop\New folder (8)\...改为C:\Projects\UrbanFlooding,避免路径解析异常。
  • 验证路径权限:确保当前用户对项目目录拥有读写权限,右键文件夹→属性→安全,确认权限设置正确。

验证

完成上述操作后,重新执行构建命令(如gradlew assembleDebug),检查两个错误是否均已消除。

内容的提问来源于stack exchange,提问作者atozcodes

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.18 06:50:29