Я пытаюсь создать систему аутентификации для моего приложения. Когда я компилирую код, Android Studio выдает следующую ошибку
java.lang.NoSuchMethodError: No virtual method setDeviceCredentialAllowed(Z)Landroid/hardware/biometrics/BiometricPrompt$Builder; in class Landroid/hardware/biometrics/BiometricPrompt$Builder; or its super classes (declaration of 'android.hardware.biometrics.BiometricPrompt$Builder' appears in /system/framework/framework.jar)
Я следовал за некоторыми другими возможными решениями, такими как Invalidating Caches and Restarting my Android Studio
, но это не решило проблему
Я использую androidx.biometric:biometric:1.0.0-alpha03
KeyguardManager keyguardManager = (KeyguardManager) getApplication().getSystemService(KEYGUARD_SERVICE);
if(keyguardManager.isKeyguardSecure()){
Toast.makeText(this,"Using keyguard",Toast.LENGTH_SHORT).show();
Builder biometricPromptBuilder = new Builder(this);
biometricPromptBuilder.setTitle("Title");
biometricPromptBuilder.setSubtitle("Subtitle");
biometricPromptBuilder.setDescription("Discription");
biometricPromptBuilder.setNegativeButton("Cancel", newExecutor, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
}
});
biometricPromptBuilder.setDeviceCredentialAllowed(true);
android.hardware.biometrics.BiometricPrompt biometricPrompt = biometricPromptBuilder.build();
CancellationSignal cancellationSignal = new CancellationSignal();
biometricPrompt.authenticate(cancellationSignal, newExecutor, new android.hardware.biometrics.BiometricPrompt.AuthenticationCallback() {
@Override
public void onAuthenticationError(int errorCode, CharSequence errString) {
super.onAuthenticationError(errorCode, errString);
}
@Override
public void onAuthenticationHelp(int helpCode, CharSequence helpString) {
super.onAuthenticationHelp(helpCode, helpString);
}
@Override
public void onAuthenticationSucceeded(android.hardware.biometrics.BiometricPrompt.AuthenticationResult result) {
super.onAuthenticationSucceeded(result);
}
@Override
public void onAuthenticationFailed() {
super.onAuthenticationFailed();
}
});
}
}
Ожидаемый результат должен быть успешной компиляции приложения