Android 的 StrictMode penaltyListener 给出 NoClassDefFoundError
Android's StrictMode penaltyListener gives NoClassDefFoundError
我正在将 StrictMode 添加到我的应用程序中,在我添加自定义 ViolationListener 之前效果很好。
它似乎找不到我提供的回调并将其检测为错误。
你能帮我一下吗?
下面的代码工作得很好:
StrictMode.setVmPolicy(new StrictMode.VmPolicy.Builder()
.detectAll()
.penaltyLog()
.build());
以下代码不起作用:
StrictMode.setVmPolicy(new StrictMode.VmPolicy.Builder()
.detectAll()
.penaltyListener(Executors.newSingleThreadExecutor(), new StrictMode.OnVmViolationListener() {
@Override
public void onVmViolation(Violation v) {
//DO MY CUSTOM STUFF LIKE LOG IT TO CRASHLYTICS
Crashlytics.logException(v);
}
})
.penaltyLog()
.build());
这是 logcat 参考(对不起,Xs。这些覆盖了包名称...)
02-20 19:02:43.682 28793-28793/? W/System: ClassLoader referenced unknown path: /data/app/and.XXXXX.XXXXX.ib.qua-1/lib/arm64
02-20 19:02:43.696 28793-28793/? I/art: Rejecting re-init on previously-failed class java.lang.Class<and.XXXXX.XXXXX.ib.app.MyApp$CrashlyticsViolationListener>: java.lang.NoClassDefFoundError: Failed resolution of: Landroid/os/StrictMode$OnVmViolationListener;
提前致谢!
顺便说一句:已经做了 clean/build/rebuild/disabled 即时 运行...
StrictMode.OnVmViolationListener
是在Android API中添加的 28、如果你的设备或者模拟器是低版本那么这个class是不存在的,导致你的错误看到了。
我正在将 StrictMode 添加到我的应用程序中,在我添加自定义 ViolationListener 之前效果很好。
它似乎找不到我提供的回调并将其检测为错误。
你能帮我一下吗?
下面的代码工作得很好:
StrictMode.setVmPolicy(new StrictMode.VmPolicy.Builder()
.detectAll()
.penaltyLog()
.build());
以下代码不起作用:
StrictMode.setVmPolicy(new StrictMode.VmPolicy.Builder()
.detectAll()
.penaltyListener(Executors.newSingleThreadExecutor(), new StrictMode.OnVmViolationListener() {
@Override
public void onVmViolation(Violation v) {
//DO MY CUSTOM STUFF LIKE LOG IT TO CRASHLYTICS
Crashlytics.logException(v);
}
})
.penaltyLog()
.build());
这是 logcat 参考(对不起,Xs。这些覆盖了包名称...)
02-20 19:02:43.682 28793-28793/? W/System: ClassLoader referenced unknown path: /data/app/and.XXXXX.XXXXX.ib.qua-1/lib/arm64
02-20 19:02:43.696 28793-28793/? I/art: Rejecting re-init on previously-failed class java.lang.Class<and.XXXXX.XXXXX.ib.app.MyApp$CrashlyticsViolationListener>: java.lang.NoClassDefFoundError: Failed resolution of: Landroid/os/StrictMode$OnVmViolationListener;
提前致谢!
顺便说一句:已经做了 clean/build/rebuild/disabled 即时 运行...
StrictMode.OnVmViolationListener
是在Android API中添加的 28、如果你的设备或者模拟器是低版本那么这个class是不存在的,导致你的错误看到了。