我的应用程序允许用户使用他们的指纹来访问他们的图片。这是创建默认对话框的基本方法:

SpassFingerprint.IdentifyListener identifyListener = new SpassFingerprint.IdentifyListener() {
 @Override
 public void onFinished(int i) {
     if (i == SpassFingerprint.STATUS_AUTHENTIFICATION_SUCCESS || i == SpassFingerprint.STATUS_AUTHENTIFICATION_PASSWORD_SUCCESS) {
    MainActivity.myFolder.edit().putBoolean("samsung", (boolean) newValue).apply();
    Toast.makeText(getActivity().getApplicationContext(), "Fingerprint confirmed.", Toast.LENGTH_LONG).show();
} else MainActivity.myFolder.edit().putBoolean("samsung", false).apply();
}

@Override
public void onReady() {

}

@Override
public void onStarted() {

}
};
mSpassFingerprint.startIdentifyWithDialog(getActivity().getApplicationContext(), identifyListener, true);


在我测试手机时,此操作在我的手机上没有错误,但是在生产模式下,它抛出NullPointerException,内容为“预期将'int'基本类型取消装箱,但返回null”。我从未见过这样的错误。这必须与三星的验证用户身份或创建对话框的方法有关。使用三星的指纹认证时,有没有其他人看到过类似的东西?

最佳答案

如果仍然有人在寻找该问题的答案,则会发生此问题,这是因为打开了带有混淆功能的Proguard。解决方法是将这些行添加到您的proguard-rules文件中:

-dontwarn com.samsung.**
-keep class com.samsung.** {*;}

关于android - 实现三星的指纹API时,确实发生了奇怪的错误:“预期将'int'原语类型拆箱,但返回null”,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34486682/

10-10 14:59