AndroidKeysetManager: keyset not found, will generate a new one
Describe the bug
I get the following error message when I generate a signed release build of an Ionic 6 app: AndroidKeysetManager: keyset not found, will generate a new one. This error doesn't come up in debug builds. The error stack trace is listed below:
W/AndroidKeysetManager: keyset not found, will generate a new one
java.io.FileNotFoundException: can't read keyset; the pref value __androidx_security_crypto_encrypted_prefs_key_keyset__ does not exist
at com.google.crypto.tink.integration.android.SharedPrefKeysetReader.readPref(SharedPrefKeysetReader.java:71)
at com.google.crypto.tink.integration.android.SharedPrefKeysetReader.readEncrypted(SharedPrefKeysetReader.java:89)
at com.google.crypto.tink.KeysetHandle.read(KeysetHandle.java:105)
at com.google.crypto.tink.integration.android.AndroidKeysetManager$Builder.read(AndroidKeysetManager.java:311)
at com.google.crypto.tink.integration.android.AndroidKeysetManager$Builder.readOrGenerateNewKeyset(AndroidKeysetManager.java:287)
at com.google.crypto.tink.integration.android.AndroidKeysetManager$Builder.build(AndroidKeysetManager.java:238)
at androidx.security.crypto.EncryptedSharedPreferences.create(EncryptedSharedPreferences.java:155)
at androidx.security.crypto.EncryptedSharedPreferences.create(EncryptedSharedPreferences.java:120)
at com.getcapacitor.community.database.sqlite.CapacitorSQLite.setSharedPreferences(CapacitorSQLite.java:144)
at com.getcapacitor.community.database.sqlite.CapacitorSQLite.<init>(CapacitorSQLite.java:121)
at com.getcapacitor.community.database.sqlite.CapacitorSQLitePlugin.load(CapacitorSQLitePlugin.java:43)
at com.getcapacitor.PluginHandle.load(PluginHandle.java:99)
at com.getcapacitor.PluginHandle.<init>(PluginHandle.java:62)
at com.getcapacitor.Bridge.registerPlugin(Bridge.java:614)
at com.getcapacitor.Bridge.registerAllPlugins(Bridge.java:562)
at com.getcapacitor.Bridge.<init>(Bridge.java:201)
at com.getcapacitor.Bridge.<init>(Unknown Source:0)
at com.getcapacitor.Bridge$Builder.create(Bridge.java:1421)
at com.getcapacitor.BridgeActivity.load(BridgeActivity.java:43)
at com.getcapacitor.BridgeActivity.onCreate(BridgeActivity.java:37)
at android.app.Activity.performCreate(Activity.java:7994)
at android.app.Activity.performCreate(Activity.java:7978)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1309)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3422)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3601)
at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:85)
at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135)
at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2066)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loop(Looper.java:223)
at android.app.ActivityThread.main(ActivityThread.java:7656)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:592)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:947)
2022-09-19 17:15:10.493 3812-3812/com.fideleapps.dataset W/AndroidKeysetManager: keyset not found, will generate a new one
java.io.FileNotFoundException: can't read keyset; the pref value __androidx_security_crypto_encrypted_prefs_value_keyset__ does not exist
at com.google.crypto.tink.integration.android.SharedPrefKeysetReader.readPref(SharedPrefKeysetReader.java:71)
at com.google.crypto.tink.integration.android.SharedPrefKeysetReader.readEncrypted(SharedPrefKeysetReader.java:89)
at com.google.crypto.tink.KeysetHandle.read(KeysetHandle.java:105)
at com.google.crypto.tink.integration.android.AndroidKeysetManager$Builder.read(AndroidKeysetManager.java:311)
at com.google.crypto.tink.integration.android.AndroidKeysetManager$Builder.readOrGenerateNewKeyset(AndroidKeysetManager.java:287)
at com.google.crypto.tink.integration.android.AndroidKeysetManager$Builder.build(AndroidKeysetManager.java:238)
at androidx.security.crypto.EncryptedSharedPreferences.create(EncryptedSharedPreferences.java:160)
at androidx.security.crypto.EncryptedSharedPreferences.create(EncryptedSharedPreferences.java:120)
at com.getcapacitor.community.database.sqlite.CapacitorSQLite.setSharedPreferences(CapacitorSQLite.java:144)
at com.getcapacitor.community.database.sqlite.CapacitorSQLite.<init>(CapacitorSQLite.java:121)
at com.getcapacitor.community.database.sqlite.CapacitorSQLitePlugin.load(CapacitorSQLitePlugin.java:43)
at com.getcapacitor.PluginHandle.load(PluginHandle.java:99)
at com.getcapacitor.PluginHandle.<init>(PluginHandle.java:62)
at com.getcapacitor.Bridge.registerPlugin(Bridge.java:614)
at com.getcapacitor.Bridge.registerAllPlugins(Bridge.java:562)
at com.getcapacitor.Bridge.<init>(Bridge.java:201)
at com.getcapacitor.Bridge.<init>(Unknown Source:0)
at com.getcapacitor.Bridge$Builder.create(Bridge.java:1421)
at com.getcapacitor.BridgeActivity.load(BridgeActivity.java:43)
at com.getcapacitor.BridgeActivity.onCreate(BridgeActivity.java:37)
at android.app.Activity.performCreate(Activity.java:7994)
at android.app.Activity.performCreate(Activity.java:7978)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1309)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3422)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3601)
at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:85)
at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135)
at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2066)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loop(Looper.java:223)
at android.app.ActivityThread.main(ActivityThread.java:7656)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:592)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:947)
To Reproduce Steps to reproduce the behavior:
- Generate release build with
ionic capacitor build android --prod --release - Sign with Android Studio
- Deploy to emulator/device
- Open Android Studio Logcat
- See error
Expected behavior Error doesn't come up and app runs as expected.
Smartphone (please complete the following information):
- Device: API 30 Pixel 3 Emulator
- OS: Android
@bot101 can you share a demo app reproducing the error
@bot101 can i see the capacitor.config.ts
@jepiqueau - I am having the same issue; except mine doesn't work on Debug builds either.
Here's my capacitor.config.ts
const config: CapacitorConfig = {
appId: 'ca.farmbuck.farmunity.theefor',
appName: 'Theefor Garden',
webDir: 'www',
bundledWebRuntime: false,
plugins: {
'SplashScreen': {
'launchAutoHide': false,
'showSpinner': false
},
CapacitorSQLite: {
androidIsEncryption: true,
}
}
};
export default config;
@bot101 @KevinTurnbull Do you still have the issue with the latest release v4.6.3-1 of the plugin. Have a look to the Android Quirks which has been amended.
@bot101 @KevinTurnbull As i do not get feedback, i assume you do not have the issue in the latest release so i close it