我在我的应用程序中应用了指纹集成,以使用指纹登录。
向公众发布该应用程序后,我看到了由此造成的Fabric Crashlytics生成的数百个崩溃报告,如下所示:
Fatal Exception: java.lang.RuntimeException: Unable to start activity ComponentInfo{com.xxx.xxxxx/com.xxx.xxxxx.LoginActivity}: java.lang.SecurityException: Permission Denial: getCurrentUser() from pid=26824, uid=10144 requires android.permission.INTERACT_ACROSS_USERS
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3319)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3415)
at android.app.ActivityThread.access$1100(ActivityThread.java:229)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1821)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:148)
at android.app.ActivityThread.main(ActivityThread.java:7406)
at java.lang.reflect.Method.invoke(Method.java)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1230)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1120)
奇怪的是,所有崩溃仅发生在三星设备上!
Galaxy J7 57%
SM-J327P 9%
Galaxy A5 7%
SM-G532F 7%
Galaxy J5 1%
Galaxy S6 Edge 1%
清单文件已具有以下权限:
<permission android:name="android.permission.INTERACT_ACROSS_USERS_FULL" android:protectionLevel="signature"/>
是否有任何有关如何跟踪/解决此问题的建议?我手边没有上述任何设备:/
谢谢。
答案 0 :(得分:4)
似乎我的问题与此重复: Android Fingerprints: hasEnrolledFingerprints triggers exception on some Samsungs
信用至: @ david-medenjak
===============
我在运行Android 6.0.1的三星Galaxy S6上遇到了同样的问题
问题是由致电引起的
fingerprintManager.hasEnrolledFingerprints()
我通过添加以下电话检查硬件来修复它:
fingerprintManager.isHardwareDetected()
&& mFingerprintManager.hasEnrolledFingerprints()
在没有可用硬件的情况下检查指纹似乎在某些设备上导致此异常。
===============
谢谢