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

APKtool重编译APK报错:写入指令偏移0x2时出错求助

解决APKtool重编译时"Unsigned short value out of range"错误的方法

错误原因

该错误源于Dex格式限制:部分指令的操作数采用无符号短整型(最大值为65535),而编译Landroidx/annotation/InspectableProperty$ValueType类的values()方法时,生成的数值(65554)超出了这个范围,大概率是反编译后的smali代码出现了常量索引或偏移量异常。

具体修复步骤

  • 修复异常smali类
    1. 找到反编译目录下的smali/androidx/annotation/InspectableProperty$ValueType.smali文件
    2. 打开文件定位到values()方法代码块,对比原始APK中该类的字节码(可通过jadx等工具查看),修正smali中的错误指令或常量索引;若自行修正困难,直接从原始APK中提取该类的smali代码替换当前文件(注意保留自己的其他修改)
  • 升级APKtool版本
    当前使用的APKtool 2.6.1存在部分Dex特性兼容问题,升级到最新稳定版(如2.9.0及以上)后重新编译,新版本通常已修复这类数值范围相关的bug
  • 改用传统AAPT编译
    编译时移除--use-aapt2参数,避免AAPT2导致的数值计算异常,修改后的编译命令示例:
    java.exe -jar "你的apktool路径" b -f -o "输出APK路径" "反编译目录"
    
  • 排查自定义修改
    确认自己的少量修改是否引入了过长常量、过多局部变量,或是改动了注解相关逻辑,这些操作可能间接影响目标类的编译。可先回退修改测试能否正常编译,逐步定位问题点

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.05 12:06:05