gpt4 book ai didi

android - 混淆的 Android 库上的 java.lang.VerifyError

转载 作者:行者123 更新时间:2023-11-30 05:02:17 28 4
gpt4 key购买 nike

对于少量设备,我们遇到了一个奇怪的异常,显然类由于某个方法而未被验证。不幸的是,我们无法用我们的设备重现这一点,堆栈跟踪是从 Fabric 中获取的。

堆栈跟踪是这样的:

Fatal Exception: java.lang.VerifyError: Verifier rejected class com.example.library.-$$Lambda$d$QOXAMJpwehT8fF2Hmjjy5XM7Qx4: void com.example.library.-$$Lambda$d$QOXAMJpwehT8fF2Hmjjy5XM7Qx4.run(): [0xFFFFFFFF] wide register index out of range (15+1 >= 10) (declaration of 'com.example.library.-$$Lambda$d$QOXAMJpwehT8fF2Hmjjy5XM7Qx4' appears in /data/app/com.example.myapp-1/base.apk)
at com.example.library.MyLibrary.initialize + 317(MyLibrary.java:317)
at com.example.myapp.MyApp.onCreate + 152(MyApp.java:152)
at android.app.Instrumentation.callApplicationOnCreate + 1024(Instrumentation.java:1024)
at android.app.ActivityThread.handleBindApplication + 5581(ActivityThread.java:5581)
at de.robv.android.xposed.XposedBridge.invokeOriginalMethodNative(XposedBridge.java)
at de.robv.android.xposed.XposedBridge.handleHookedMethod + 360(XposedBridge.java:360)
at android.app.ActivityThread.handleBindApplication(ActivityThread.java)
at android.app.ActivityThread.-wrap2(ActivityThread.java)
at android.app.ActivityThread$H.handleMessage + 1579(ActivityThread.java:1579)
at android.os.Handler.dispatchMessage + 102(Handler.java:102)
at android.os.Looper.loop + 154(Looper.java:154)
at android.app.ActivityThread.main + 6300(ActivityThread.java:6300)
at java.lang.reflect.Method.invoke(Method.java)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run + 887(ZygoteInit.java:887)
at com.android.internal.os.ZygoteInit.main + 777(ZygoteInit.java:777)
at de.robv.android.xposed.XposedBridge.main + 107(XposedBridge.java:107)

MyLibrary.java:317 中的代码如下所示:

executeOnBackground(() -> {
// some code
}

函数定义如下:

private static void executeOnBackground(Runnable runnable) {
executeOnBackground(true, runnable);
}

内部调用:

private static void executeOnBackground(boolean forcePost, Runnable runnable) {
if (runnable == null)
return;

if (isOnMainThread() || forcePost)
getNextBackgroundHandler().post(runnable);
else
runnable.run();
}

请注意,堆栈跟踪在到达函数之前就结束了,所以我假设问题出在 lambda 函数中?或者在定义中?我不知道如何解决这个问题,但这是我们现在遇到的最常见的错误。它发生在随机设备上,Android 操作系统版本无关紧要。因此,如果有人可以提供帮助或提供一些反馈,我将不胜感激。谢谢。

最佳答案

分析堆栈跟踪显示 XPosed 似乎处于 Activity 状态,这是一个 Hook 框架。如果您仅在某些设备上遇到此错误,可能是因为您的某些用户试图挂接您的应用程序并修改相应类 MyLibrary 中的代码。

关于android - 混淆的 Android 库上的 java.lang.VerifyError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58057381/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com