2021-12-12 14:02:52.432 5342-5342/com.example.classloader_demo E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.example.classloader_demo, PID: 5342
java.lang.VerifyError: Verifier rejected class androidx.appcompat.app.WindowDecorActionBar: androidx.appcompat.view.ActionMode androidx.appcompat.app.WindowDecorActionBar.startActionMode(androidx.appcompat.view.ActionMode$Callback) failed to verify: androidx.appcompat.view.ActionMode androidx.appcompat.app.WindowDecorActionBar.startActionMode(androidx.appcompat.view.ActionMode$Callback): [0x2A] register v0 has type Precise Reference: androidx.appcompat.app.WindowDecorActionBar$ActionModeImpl but expected Reference: androidx.appcompat.view.ActionMode (declaration of 'androidx.appcompat.app.WindowDecorActionBar' appears in /data/app/com.example.classloader_demo-F2fgfWcEO4AIIt49r9aB1w==/base.apk)
at androidx.appcompat.app.AppCompatDelegateImpl.initWindowDecorActionBar(AppCompatDelegateImpl.java:557)
at androidx.appcompat.app.AppCompatDelegateImpl.getSupportActionBar(AppCompatDelegateImpl.java:537)
at androidx.appcompat.app.AppCompatDelegateImpl.onPostResume(AppCompatDelegateImpl.java:679)
at androidx.appcompat.app.AppCompatActivity.onPostResume(AppCompatActivity.java:241)
at android.app.Activity.performResume(Activity.java:7325)
at android.app.ActivityThread.performResumeActivity(ActivityThread.java:3814)
at android.app.ActivityThread.handleResumeActivity(ActivityThread.java:3854)
at android.app.servertransaction.ResumeActivityItem.execute(ResumeActivityItem.java:51)
at android.app.servertransaction.TransactionExecutor.executeLifecycleState(TransactionExecutor.java:145)
at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:70)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1816)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loop(Looper.java:193)
at android.app.ActivityThread.main(ActivityThread.java:6718)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858)
这是从 Dex 文件中加载 Activity 组件类 , 然后启动该 Activity 组件 , 报上述错误 ;
Activity 组件类加载成功 , 执行时报错 ;
错误是与类加载方式相关 ;
加载该 Activity 组件类时 , 先创建 DexClassLoader , 并设置其 父类节点为 BootClassLoader , 然后使用 DexClassLoader 实例对象作为 PathClassLoader 的父节点 ;
最终加载到该 Activity 组件并启动该组件时 , 报上述错误 ;
使用 【Android 逆向】启动 DEX 字节码中的 Activity 组件 ( 替换 LoadedApk 中的类加载器 | 加载 DEX 文件中的 Activity 类并启动成功 ) 中的方案是可以执行成功的 ;
【错误记录】Android 应用运行报错 ( java.lang.VerifyError: Verifier rejected class androidx. | 逆向中遇到的问题 )
一、报错信息、二、问题分析
1.编译报错具体内容
我们app的中间层核心sdk是一个自己编译的jar包,几年以来各类机型一直都没有出现过Caused by: java.lang.VerifyError的报错,如图所示:
直到2021年中旬开始有客户反馈集成了我们的插件包(包含该jar)后,在android 11系统的手机上必然崩溃,通过错误日志文件可以看到是一个类型检查错误,即上图所示的Caused by: java.lang.VerifyError,具体表现是找不到getCooperateService()方法返回的对象(一个ai
当smali修改代码出错举例1,log如下:
虚拟机层次:
1.本身做出了预测,寄存器v2是符合要求入参,暗示你这个也许是你想要的。VFY: register1 v2 type 17, wanted ref
2.下一句:报参数1不对,应该是String类型。VFY: bad arg 1 (into Ljava/lang/String;)
3.第三行,拒绝调用初始化。VFY: ...
报错详细日志:
07-04 20:13:42.792 26704-26704/com.test.client E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.test.client, PID: 26704
发生 Caused by: java.lang.VerifyError: Verifier rejected class 及java.lang.NoClassDefFoundError
依赖第三方应用时,丢包/类、方法等 运行时报错
1、检查分包问题,主要类分包放到主dex中
注意:在MultiDex.install()完成之前,不要通过反射或 JNI 执行MultiDex.install()或其他任何代码。MultiDex 跟踪功能不会追踪这些调用,从而导致出现ClassNotFoun...
最近在用Nodejs发送https请求时候,出现\”Error: UNABLE_TO_VERIFY_LEAF_SIGNATURE\”的错误,错误如下:
events.js:72
throw er; // Unhandled \'error\' event
Error: UNABLE_TO_VERIFY_LEAF_SIGNATURE
at SecurePair. (tls.js:1381:32)
at SecurePair.emit (events.js:92:17)
at SecurePair.maybeInitFinished (tls.js:980:10)
at Clear
The main goal of this project is to design and simulate a wireless
communication system base on the IEEE 802.11n. A system was built and simulated in Matlab to obtain
numerical result such as bit error rate plots and verify the functionality of
each block in the design.
public static String execute_command(String cmd) {
try {
//String keyCommand = "setprop " + propName;
Runtime runtime = Runtime.getRuntime();
Process proc = runtime.exec(cmd);
Flink Redis Connector 的报错 "Caused by: java.lang.VerifyError: Bad return type" 通常是由于类型不匹配导致的。这种情况通常发生在使用 Flink Redis Connector 的时候,当你尝试将类型为 T 的元素写入 Redis 时,但是 T 的类型并不是 Redis Connector 支持的类型。
例如,如果你使用 Flink Redis Connector 将字符串写入 Redis,但是你定义的 T 是一个整数,那么你就会看到 "Caused by: java.lang.VerifyError: Bad return type" 的错误。
解决方法是确保你正确地定义了 T 的类型,并且这个类型是 Redis Connector 支持的。如果你不确定 T 的类型应该是什么,可以参考 Flink Redis Connector 的文档来了解支持的类型。