Biometric-Auth-Sample
Biometric-Auth-Sample copied to clipboard
Crash in Android Version 7 API 24
java.lang.RuntimeException: Unable to start activity ComponentInfo{}: java.lang.RuntimeException: Failed to init Cipher at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2724) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2789) at android.app.ActivityThread.-wrap12(ActivityThread.java) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1527) at android.os.Handler.dispatchMessage(Handler.java:110) at android.os.Looper.loop(Looper.java:203) at android.app.ActivityThread.main(ActivityThread.java:6253) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1063) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:924) Caused by: java.lang.RuntimeException: Failed to init Cipher at com.utils.fingerprint.BiometricManagerV23.initCipher(BiometricManagerV23.java:180) at com.utils.fingerprint.BiometricManagerV23.displayBiometricPromptV23(BiometricManagerV23.java:55)
Could you post the nested exception thrown from: Caused by: java.lang.RuntimeException: Failed to init Cipher? It should be one of the following: CertificateException | UnrecoverableKeyException | IOException | NoSuchAlgorithmException | InvalidKeyException | KeyStoreException
.
This is the same issue but with API 27 on Android emulator.
2019-06-14 13:20:59.906 7217-7217/com.dhruva.iiser E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.dhruva.iiser, PID: 7217
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.dhruva.iiser/com.dhruva.iiser.LoginActivity}: java.lang.RuntimeException: Failed to init Cipher
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2778)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2856)
at android.app.ActivityThread.-wrap11(Unknown Source:0)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1589)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loop(Looper.java:164)
at android.app.ActivityThread.main(ActivityThread.java:6494)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:438)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:807)
Caused by: java.lang.RuntimeException: Failed to init Cipher
at com.an.biometric.BiometricManagerV23.initCipher(BiometricManagerV23.java:174)
at com.an.biometric.BiometricManagerV23.displayBiometricPromptV23(BiometricManagerV23.java:53)
at com.an.biometric.BiometricManager.displayBiometricDialog(BiometricManager.java:70)
at com.an.biometric.BiometricManager.authenticate(BiometricManager.java:61)
at com.dhruva.iiser.LoginActivity.onCreate(LoginActivity.java:106)
at android.app.Activity.performCreate(Activity.java:7009)
at android.app.Activity.performCreate(Activity.java:7000)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1214)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2731)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2856)
at android.app.ActivityThread.-wrap11(Unknown Source:0)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1589)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loop(Looper.java:164)
at android.app.ActivityThread.main(ActivityThread.java:6494)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:438)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:807)
//HERE IS THE ERROR
Caused by: java.security.InvalidKeyException: Only SecretKey is supported
at com.android.org.conscrypt.OpenSSLCipher.checkAndSetEncodedKey(OpenSSLCipher.java:436)
at com.android.org.conscrypt.OpenSSLCipher.engineInit(OpenSSLCipher.java:261)
at javax.crypto.Cipher.tryTransformWithProvider(Cipher.java:2668)
at javax.crypto.Cipher.tryCombinations(Cipher.java:2575)
at javax.crypto.Cipher$SpiAndProviderUpdater.updateAndGetSpiAndProvider(Cipher.java:2480)
at javax.crypto.Cipher.chooseProvider(Cipher.java:567)
at javax.crypto.Cipher.init(Cipher.java:831)
at javax.crypto.Cipher.init(Cipher.java:772)
at com.an.biometric.BiometricManagerV23.initCipher(BiometricManagerV23.java:163)
at com.an.biometric.BiometricManagerV23.displayBiometricPromptV23(BiometricManagerV23.java:53)
at com.an.biometric.BiometricManager.displayBiometricDialog(BiometricManager.java:70)
at com.an.biometric.BiometricManager.authenticate(BiometricManager.java:61)
at com.dhruva.iiser.LoginActivity.onCreate(LoginActivity.java:106)
at android.app.Activity.performCreate(Activity.java:7009)
at android.app.Activity.performCreate(Activity.java:7000)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1214)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2731)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2856)
at android.app.ActivityThread.-wrap11(Unknown Source:0)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1589)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loop(Looper.java:164)
at android.app.ActivityThread.main(ActivityThread.java:6494)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:438)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:807)
Does this help @Sammekl
it requires runtime permission