uccmawei / FingerprintIdentify

:+1: Android Fingerprint Verification SDK
MIT License
1.73k stars 229 forks source link

三星手机无法弹出指纹识别 #73

Closed DanteAndroid closed 5 years ago

DanteAndroid commented 5 years ago

手机型号:S9+

没有弹出指纹认证的窗口,看日志报了这个 ClassNotFound 的错误。 查了一下,这个可能是AndroidX库的bug,但是会影响到这个指纹识别吗? 参考链接

 Caused by: java.lang.ClassNotFoundException: Didn't find class "android.view.View$OnUnhandledKeyEventListener" on path: DexPathList[[zip file "/data/app/android.nutstore.myapplication-TAq2hpt3QyOsDzRq-9xQ0w==/base.apk", zip file "/data/app/android.nutstore.myapplication-TAq2hpt3QyOsDzRq-9xQ0w==/split_lib_dependencies_apk.apk", zip file "/data/app/android.nutstore.myapplication-TAq2hpt3QyOsDzRq-9xQ0w==/split_lib_resources_apk.apk", zip file "/data/app/android.nutstore.myapplication-TAq2hpt3QyOsDzRq-9xQ0w==/split_lib_slice_0_apk.apk", zip file "/data/app/android.nutstore.myapplication-TAq2hpt3QyOsDzRq-9xQ0w==/split_lib_slice_1_apk.apk", zip file "/data/app/android.nutstore.myapplication-TAq2hpt3QyOsDzRq-9xQ0w==/split_lib_slice_2_apk.apk", zip file "/data/app/android.nutstore.myapplication-TAq2hpt3QyOsDzRq-9xQ0w==/split_lib_slice_3_apk.apk", zip file "/data/app/android.nutstore.myapplication-TAq2hpt3QyOsDzRq-9xQ0w==/split_lib_slice_4_apk.apk", zip file "/data/app/android.nutstore.myapplication-TAq2hpt3QyOsDzRq-
2019-01-17 10:39:15.830 1235-1235/? I/zygote64:     at java.lang.Class dalvik.system.BaseDexClassLoader.findClass(java.lang.String) (BaseDexClassLoader.java:93)
2019-01-17 10:39:15.830 1235-1235/? I/zygote64:     at java.lang.Class java.lang.ClassLoader.loadClass(java.lang.String, boolean) (ClassLoader.java:379)
2019-01-17 10:39:15.830 1235-1235/? I/zygote64:     at java.lang.Class java.lang.ClassLoader.loadClass(java.lang.String) (ClassLoader.java:312)
2019-01-17 10:39:15.830 1235-1235/? I/zygote64:     at java.lang.Object java.lang.Class.newInstance() (Class.java:-2)
2019-01-17 10:39:15.830 1235-1235/? I/zygote64:     at android.app.Activity android.app.Instrumentation.newActivity(java.lang.ClassLoader, java.lang.String, android.content.Intent) (Instrumentation.java:1180)
2019-01-17 10:39:15.830 1235-1235/? I/zygote64:     at android.app.Activity android.app.ActivityThread.performLaunchActivity(android.app.ActivityThread$ActivityClientRecord, android.content.Intent) (ActivityThread.java:2829)
2019-01-17 10:39:15.830 1235-1235/? I/zygote64:     at void android.app.ActivityThread.handleLaunchActivity(android.app.ActivityThread$ActivityClientRecord, android.content.Intent, java.lang.String) (ActivityThread.java:3030)
2019-01-17 10:39:15.830 1235-1235/? I/zygote64:     at void android.app.ActivityThread.-wrap11(android.app.ActivityThread, android.app.ActivityThread$ActivityClientRecord, android.content.Intent, java.lang.String) (ActivityThread.java:-1)
2019-01-17 10:39:15.830 1235-1235/? I/zygote64:     at void android.app.ActivityThread$H.handleMessage(android.os.Message) (ActivityThread.java:1696)
2019-01-17 10:39:15.830 1235-1235/? I/zygote64:     at void android.os.Handler.dispatchMessage(android.os.Message) (Handler.java:105)
2019-01-17 10:39:15.830 1235-1235/? I/zygote64:     at void android.os.Looper.loop() (Looper.java:164)
2019-01-17 10:39:15.830 1235-1235/? I/zygote64:     at void android.app.ActivityThread.main(java.lang.String[]) (ActivityThread.java:6938)
2019-01-17 10:39:15.830 1235-1235/? I/zygote64:     at java.lang.Object java.lang.reflect.Method.invoke(java.lang.Object, java.lang.Object[]) (Method.java:-2)
2019-01-17 10:39:15.830 1235-1235/? I/zygote64:     at void com.android.internal.os.Zygote$MethodAndArgsCaller.run() (Zygote.java:327)
2019-01-17 10:39:15.830 1235-1235/? I/zygote64:     at void com.android.internal.os.ZygoteInit.main(java.lang.String[]) (ZygoteInit.java:1374)
2019-01-17 10:39:15.830 1235-1235/? I/zygote64: Rejecting re-init on previously-failed class java.lang.Class<android.nutstore.myapplication.MainActivity$onCreate$l$1>: java.lang.NoClassDefFoundError: Failed resolution of: Landroid/view/View$OnUnhandledKeyEventListener;
2019-01-17 10:39:15.830 1235-1235/? I/zygote64:     at java.lang.Object java.lang.Class.newInstance() (Class.java:-2)
2019-01-17 10:39:15.830 1235-1235/? I/zygote64:     at android.app.Activity android.app.Instrumentation.newActivity(java.lang.ClassLoader, java.lang.String, android.content.Intent) (Instrumentation.java:1180)
2019-01-17 10:39:15.830 1235-1235/? I/zygote64:     at android.app.Activity android.app.ActivityThread.performLaunchActivity(android.app.ActivityThread$ActivityClientRecord, android.content.Intent) (ActivityThread.java:2829)
2019-01-17 10:39:15.830 1235-1235/? I/zygote64:     at void android.app.ActivityThread.handleLaunchActivity(android.app.ActivityThread$ActivityClientRecord, android.content.Intent, java.lang.String) (ActivityThread.java:3030)
2019-01-17 10:39:15.830 1235-1235/? I/zygote64:     at void android.app.ActivityThread.-wrap11(android.app.ActivityThread, android.app.ActivityThread$ActivityClientRecord, android.content.Intent, java.lang.String) (ActivityThread.java:-1)
2019-01-17 10:39:15.830 1235-1235/? I/zygote64:     at void android.app.ActivityThread$H.handleMessage(android.os.Message) (ActivityThread.java:1696)
2019-01-17 10:39:15.830 1235-1235/? I/zygote64:     at void android.os.Handler.dispatchMessage(android.os.Message) (Handler.java:105)
2019-01-17 10:39:15.830 1235-1235/? I/zygote64:     at void android.os.Looper.loop() (Looper.java:164)
2019-01-17 10:39:15.830 1235-1235/? I/zygote64:     at void android.app.ActivityThread.main(java.lang.String[]) (ActivityThread.java:6938)
2019-01-17 10:39:15.830 1235-1235/? I/zygote64:     at java.lang.Object java.lang.reflect.Method.invoke(java.lang.Object, java.lang.Object[]) (Method.java:-2)
2019-01-17 10:39:15.830 1235-1235/? I/zygote64:     at void com.android.internal.os.Zygote$MethodAndArgsCaller.run() (Zygote.java:327)
2019-01-17 10:39:15.830 1235-1235/? I/zygote64:     at void com.android.internal.os.ZygoteInit.main(java.lang.String[]) (ZygoteInit.java:1374)
DanteAndroid commented 5 years ago

似乎不影响指纹识别。过了一会还会走到onNotMatch(始终没有弹出指纹识别的对话框),看了下还有别的日志:

2019-01-17 11:08:24.059 10855-10855/? D/SpassFingerprintSDK: Survey Mode : java.lang.ClassNotFoundException: com.samsung.android.feature.FloatingFeature
2019-01-17 11:08:24.060 10855-10855/? I/SpassFingerprintSDK: Survey Mode : true
2019-01-17 11:08:24.065 10855-10855/? I/SpassFingerprintSDK: SpassFingerprint : 1.2.6, 16973824, true
2019-01-17 11:08:24.065 10855-10855/? I/SpassFingerprintSDK: initialize : BP=false,CD=true,ID=false,GT=false
2019-01-17 11:08:24.065 10855-10855/? D/SpassFingerprintSDK: insertLog :  No permission
2019-01-17 11:08:24.068 10855-10855/? I/SpassFingerprintSDK: SpassFingerprint : 1.2.6, 16973824, true
2019-01-17 11:08:25.082 10855-10855/com.example.l.myapplication I/FPMS_COMPAT: registerClient : token = com.samsung.android.sdk.pass.SpassFingerprint$b@702bdda
2019-01-17 11:08:25.508 10855-10855/com.example.l.myapplication D/SpassFingerprintSDK: evt : 11, 0, 0
2019-01-17 11:09:25.126 10855-10855/com.example.l.myapplication D/SpassFingerprintSDK: evt : 13, -1, 4
2019-01-17 11:09:25.130 10855-10855/com.example.l.myapplication D/SpassFingerprintSDK: insertLog :  No permission
2019-01-17 11:09:25.131 10855-10855/com.example.l.myapplication D/SpassFingerprintSDK: evt : 16, 0, 0
2019-01-17 11:09:25.131 10855-10855/com.example.l.myapplication D/SpassFingerprintSDK: onFingerprintEvent : completed = 16
2019-01-17 11:09:25.132 10855-10855/com.example.l.myapplication I/FPMS_COMPAT: unregisterClient : token = com.samsung.android.sdk.pass.SpassFingerprint$b@702bdda
2019-01-17 11:09:25.211 10855-10855/com.example.l.myapplication I/FPMS_COMPAT: registerClient : token = com.samsung.android.sdk.pass.SpassFingerprint$b@702bdda
uccmawei commented 5 years ago

库本身都没有任何弹窗的。 其次com.samsung.android.feature.FloatingFeature,这个类不在SDK里。 另外你运行我的那个demo可以用吗?

DanteAndroid commented 5 years ago

您的库在GitHub上是排名第一的指纹识别库。可否考虑加个对话框呢?效果可以参考BiometricPrompt(目前只支持P) 另外,是可以正常识别的。不知道上面的log有没有什么影响。

DanteAndroid commented 5 years ago

@uccmawei 还有个问题用这个库必须升级到AndroidX吗我们公司项目目前还没有升级,担心会有问题

uccmawei commented 5 years ago

不升级你也可以用旧版本

DanteAndroid commented 5 years ago

不升级两个库不兼容,会报各种错误。 我把你的库中的AndroidX库exclude掉(不排除掉的话会报类重复的错误)后报:

java.lang.NoClassDefFoundError: Failed resolution of: Landroidx/core/os/CancellationSignal;
2019-01-21 11:19:56.197 13511-13511/com.example.l.myapplication W/System.err:     at com.wei.android.lib.fingerprintidentify.impl.AndroidFingerprint.doIdentify(AndroidFingerprint.java:61)
2019-01-21 11:19:56.197 13511-13511/com.example.l.myapplication W/System.err:     at com.wei.android.lib.fingerprintidentify.base.BaseFingerprint.startIdentify(BaseFingerprint.java:61)
2019-01-21 11:19:56.197 13511-13511/com.example.l.myapplication W/System.err:     at com.wei.android.lib.fingerprintidentify.FingerprintIdentify.startIdentify(FingerprintIdentify.java:89)
uccmawei commented 5 years ago

两个库不兼容?哪两个库?我这里就一个库啊

DanteAndroid commented 5 years ago

当然是您这个库里面的Androidx库和我项目的support库不兼容啦

uccmawei commented 5 years ago

我都说了,你直接用我的还没有使用AndroidX的旧版本,你就可以不用管AndroidX的兼容问题了,你用1.2.1版本吧

DanteAndroid commented 5 years ago

谢谢,误解了,以为你说的旧版本指的是没升级AndroidX的旧版本support库