【问题标题】:VerifyError - only on some android devicesVerifyError - 仅在某些安卓设备上
【发布时间】:2014-07-28 09:52:07
【问题描述】:

我构建了一个安卓应用。 出于某种原因,我在某些设备(例如三星 Galaxy)上得到了 VerifyError, 而不是在其他设备上(例如在 Nexus 5 上)。

通过这一行抛出异常:

AdManager.getInstance().preInit();

异常堆栈是:

java.lang.VerifyError: org/example/crossword/Ads/AdManager
at org.example.crossword.PuzzleActivity.onCreate(PuzzleActivity.java:55)
at android.app.Activity.performCreate(Activity.java:5255)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1097)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2213)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2299)
at android.app.ActivityThread.access$700(ActivityThread.java:154)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1284)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:5306)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1102)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:869)
at dalvik.system.NativeStart.main(Native Method)

在尝试确定导致问题的原因后,我注意到我有一行:

catch (ReflectiveOperationException e) { ...

当我删除此行并改用通用异常时,不会发生验证错误。

那么,我想知道为什么 ReflectiveOperationException 在某些设备上会导致此错误?

【问题讨论】:

  • 你在 PuzzleActivity.java:55 做什么?而反射操作异常是从哪里来的? Android API、Java、自定义?这是stackoverflow上的一个很好的问题和答案stackoverflow.com/questions/100107/…

标签: java android reflection verifyerror


【解决方案1】:

ReflectiveOperationException 是在 API 级别 19 中添加的。任何运行早于 Android 4.4 的设备都不会有此类,并且 VerifyError 的一个来源正在尝试使用不存在的类。

【讨论】:

    猜你喜欢
    • 2016-06-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-25
    • 2014-01-08
    • 2023-01-03
    • 2019-04-30
    相关资源
    最近更新 更多