android 反编译打包出现java.lang.VerifyError错误的原因和解决
2017-09-28 15:05
846 查看
在安卓开发中经常要用到逆向工程,所以需要反编译修改代码然后再重新打包。有时候会出现如下错误
java.lang.VerifyError: Rejecting
class com.samsung.android.sdk.cup.Scup because it failed compile-time verification (declaration of 'com.samsung.android.sdk.cup.Scup' appears in
出现这种错误的原因是在smail文件中修改代码的时候把代码改错了,造成了语法不正确。
比如以下代码
.line 282
.local v9, "in":Ljava/io/InputStream;
:try_start_0
invoke-virtual/range
{p0 .. p0}, Lcom/example/shuowandemo/MainActivity;->getAssets()Landroid/content/res/AssetManager;
move-result-object v15
const-string v16, "db.jpg"
invoke-virtual/range {v15 .. v16}, Landroid/content/res/AssetManager;->open(Ljava/lang/String;)Ljava/io/InputStream;
move-result-object v9
.line 283
new-instance v13, Landroid/graphics/BitmapFactory$Options;
如果你想删掉上面红色部分的代码,那么你不能单单删除这部分代码。因为他的调用结果传给了v15,而且v15又在
invoke-virtual/range
{v15 .. v16}, Landroid/content/res/AssetManager;->open(Ljava/lang/String;)Ljava/io/InputStream;
中被调用。所以要删除掉下面一大段
invoke-virtual/range
{p0 .. p0}, Lcom/example/shuowandemo/MainActivity;->getAssets()Landroid/content/res/AssetManager;
move-result-object v15
const-string v16, "db.jpg"
invoke-virtual/range {v15 .. v16}, Landroid/content/res/AssetManager;->open(Ljava/lang/String;)Ljava/io/InputStream;
move-result-object v9
java.lang.VerifyError: Rejecting
class com.samsung.android.sdk.cup.Scup because it failed compile-time verification (declaration of 'com.samsung.android.sdk.cup.Scup' appears in
出现这种错误的原因是在smail文件中修改代码的时候把代码改错了,造成了语法不正确。
比如以下代码
.line 282
.local v9, "in":Ljava/io/InputStream;
:try_start_0
invoke-virtual/range
{p0 .. p0}, Lcom/example/shuowandemo/MainActivity;->getAssets()Landroid/content/res/AssetManager;
move-result-object v15
const-string v16, "db.jpg"
invoke-virtual/range {v15 .. v16}, Landroid/content/res/AssetManager;->open(Ljava/lang/String;)Ljava/io/InputStream;
move-result-object v9
.line 283
new-instance v13, Landroid/graphics/BitmapFactory$Options;
如果你想删掉上面红色部分的代码,那么你不能单单删除这部分代码。因为他的调用结果传给了v15,而且v15又在
invoke-virtual/range
{v15 .. v16}, Landroid/content/res/AssetManager;->open(Ljava/lang/String;)Ljava/io/InputStream;
中被调用。所以要删除掉下面一大段
invoke-virtual/range
{p0 .. p0}, Lcom/example/shuowandemo/MainActivity;->getAssets()Landroid/content/res/AssetManager;
move-result-object v15
const-string v16, "db.jpg"
invoke-virtual/range {v15 .. v16}, Landroid/content/res/AssetManager;->open(Ljava/lang/String;)Ljava/io/InputStream;
move-result-object v9
相关文章推荐
- Android项目更换开发环境时出现的 java.lang.VerifyError 异常解决办法
- Android 打包时出现 java.lang.OutOfMemoryError: GC overhead limit exceeded 的解决办法
- 出现 java.lang.OutOfMemoryError: PermGen space 错误的原因及解决方法
- Android项目更换开发环境时出现的 java.lang.VerifyError 异常解决办法
- Android项目更换开发环境时出现的 java.lang.VerifyError 异常解决办法
- 出现 java.lang.UnsupportedClassVersionError 错误的原因及解决方法
- 出现 java.lang.UnsupportedClassVersionError 错误的原因及解决方法
- 举例说明android中出现java.lang.IllegalStateException: database not open这种错误的原因及解决办法
- 出现java.lang.UnsupportedClassVersionError 错误的原因
- 出现java.lang.UnsupportedClassVersionError 错误的原因
- 使用Eclipse开发Android出现java.lang.NullPointerException错误的解决方法
- Android编程:解决异常"java.lang.verifyerror"
- Android开发中java.lang.RuntimeException:错误的集中原因及解决办法
- Android运行时出现的 java.lang.VerifyError 异常解决方案
- 关于android编程遇到java.lang.OutOfMemoryError: bitmap size exceeds VM budget此类问题的原因及解决办法
- Android升级ADT和SDK版本运行项目 报出java.lang.VerifyError 异常解决办法
- 出现java.lang.UnsupportedClassVersionError 错误的原因
- 出现java.lang.UnsupportedClassVersionError 错误的原因
- Android使用achart绘图框架出现java.lang.NoClassDefFoundError错误解决方式
- Android ADT插件更新后程序运行时抛出java.lang.VerifyError异常解决办法