2015-12-28 2 views
0

Мое приложение позволяет пользователю использовать свой отпечаток пальца для доступа к своим фотографиям. Это основной метод для создания диалога по умолчанию:Действительно странная ошибка при внедрении API отпечатков пальцев Samsung: «Ожидается, что unbox a« примитив », но был возвращен null»

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, который говорит: «Ожидается, что распаковывать в ВНУТР примитивный тип, но был возвращен null ". Я никогда не видел такой ошибки, как когда-либо. Это должно быть что-то с использованием метода аутентификации пользователя пользователем или создания диалога. Кто-нибудь еще видел что-то подобное при использовании аутентификации по отпечаткам пальцев Samsung?

+0

Пожалуйста, включите полную трассировку стека. Кроме того, попробуйте определить, происходит ли исключение в коде или в Samsung (не в первый раз, поверьте мне). – Karakuri

+0

@ Каракури Я понял. Это было что-то в proguard. Такая тонкая ошибка – user2759839

ответ

1

Если кто-то еще ищет ответ на этот вопрос, это происходит из-за Proguard с обфускацией. Исправление состоит в том, чтобы добавить эту строку в ваш файл proguard-rules:

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