当我的流程打开指纹对话框时,我正面临着问题。 但是我知道API 19不支持指纹认证,因为我的FingerPrintDialog类会检查当前版本,它应该在那里处理它。
我调试它,看到应用程序在进入FingerPrintDialog类之前崩溃了。
FingerPrintDialog fingerPrintDialog = FingerPrintDialog.newInstance(cardId, userId, purchaseId, savedCardList, selectedShippingMethod, selectedShippingAddress);
堆栈跟踪是:
08-27 21:32:22.478 24758-24758/com.bkm.b2c W/dalvikvm: VFY: unable to resolve exception class 155 (Landroid/security/keystore/KeyPermanentlyInvalidatedException;)
08-27 21:32:22.478 24758-24758/com.bkm.b2c W/dalvikvm: VFY: unable to find exception handler at addr 0x2a
08-27 21:32:22.478 24758-24758/com.bkm.b2c W/dalvikvm: VFY: rejected Lcom/bkm/b2c/FingerPrintDialog;.cipherInit ()Z
08-27 21:32:22.478 24758-24758/com.bkm.b2c W/dalvikvm: VFY: rejecting opcode 0x0d at 0x002a
08-27 21:32:22.482 24758-24758/com.bkm.b2c W/dalvikvm: VFY: rejected Lcom/bkm/b2c/FingerPrintDialog;.cipherInit ()Z
08-27 21:32:22.482 24758-24758/com.bkm.b2c W/dalvikvm: Verifier rejected class Lcom/bkm/b2c/FingerPrintDialog;
08-27 21:32:58.049 24758-24758/com.bkm.b2c D/AndroidRuntime: Shutting down VM
08-27 21:32:58.049 24758-24758/com.bkm.b2c W/dalvikvm: threadid=1: thread exiting with uncaught exception (group=0xa4cdab20)
08-27 21:32:58.617 24758-24758/com.bkm.b2c E/UncaughtException: java.lang.VerifyError: com/bkm/b2c/FingerPrintDialog
at com.bkm.b2c.activity.PaymentCompleteActivity$2.onClick(PaymentCompleteActivity.java:155)
at android.view.View.performClick(View.java:4438)
at android.view.View$PerformClick.run(View.java:18422)
at android.os.Handler.handleCallback(Handler.java:733)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:136)
at android.app.ActivityThread.main(ActivityThread.java:5001)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:515)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:785)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:601)
at dalvik.system.NativeStart.main(Native Method)
是 KeyPermanentlyInvalidatedException 看起来无法在API 23下面处理,但我已经在它之前进行了版本检查。
我觉得可能存在调用静态方法 FingerPrintDialog.newInstance 的问题,但我没有经历过,所以我不确定。
什么可能导致这个问题?