apk反编译出现异常,谁能告诉我是怎么回事
2016-10-18
展开全部
一: All register args must fit in 4 bits
提示出错的行数的代码是:
[java] view plain copy 在CODE上查看代码片派生到我的代码片
<pre name="code" class="java"> invoke-virtual {v0,p0, v1}, Lcom/Jt/ST/uti/JManager;->startService(Landroid/content/Context;I)V
在http://stackoverflow.com/questions/18446954/smaliall-register-args-must-fit-in-4-bits-error这里找到了解决方案。
原因是超出了寄存器的允许范围。只允许使用v0-v15. 知道了出错的原因,那么修改起来就好办了,只需要把超出的寄存器move下就可以了,在该代码前面添加
[java] view plain copy 在CODE上查看代码片派生到我的代码片
move-object/from16 v2, p0
然后该句修改为:
invoke-virtual {v0,v2, v1}, Lcom/Jt/ST/uti/JManager;->startService(Landroid/content/Context;I)V
就ok了
二:Failure [INSTALL_FAILED_INVALID_INSTALL_LOCATION]
在使用adb install 向手机安装软件时提示的错误,原因是签名错了,签名使用的是系统签名,改为其他的就可以了。
系统签名命令:
[java] view plain copy 在CODE上查看代码片派生到我的代码片
java -jar signapk.jar platform.x509.pem platform.pk8 d.apk dd.apk
普通签名的命令:
[java] view plain copy 在CODE上查看代码片派生到我的代码片
java -jar signapk.jar testkey.x509.pem testkey.pk8 d.apk dd.apk
提示出错的行数的代码是:
[java] view plain copy 在CODE上查看代码片派生到我的代码片
<pre name="code" class="java"> invoke-virtual {v0,p0, v1}, Lcom/Jt/ST/uti/JManager;->startService(Landroid/content/Context;I)V
在http://stackoverflow.com/questions/18446954/smaliall-register-args-must-fit-in-4-bits-error这里找到了解决方案。
原因是超出了寄存器的允许范围。只允许使用v0-v15. 知道了出错的原因,那么修改起来就好办了,只需要把超出的寄存器move下就可以了,在该代码前面添加
[java] view plain copy 在CODE上查看代码片派生到我的代码片
move-object/from16 v2, p0
然后该句修改为:
invoke-virtual {v0,v2, v1}, Lcom/Jt/ST/uti/JManager;->startService(Landroid/content/Context;I)V
就ok了
二:Failure [INSTALL_FAILED_INVALID_INSTALL_LOCATION]
在使用adb install 向手机安装软件时提示的错误,原因是签名错了,签名使用的是系统签名,改为其他的就可以了。
系统签名命令:
[java] view plain copy 在CODE上查看代码片派生到我的代码片
java -jar signapk.jar platform.x509.pem platform.pk8 d.apk dd.apk
普通签名的命令:
[java] view plain copy 在CODE上查看代码片派生到我的代码片
java -jar signapk.jar testkey.x509.pem testkey.pk8 d.apk dd.apk
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询