При использовании
androidx.security: security-crypto: 1.0.0-rc01
Приложение работает нормально при использовании нового
androidx.security: security-crypto: 1.0.0-rc02
Я получаю следующее
E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.app.appm, PID: 12145
java.lang.NoSuchMethodError: No static method aes256SivTemplate()Lcom/google/crypto/tink/KeyTemplate; in class Lcom/google/crypto/tink/daead/AesSivKeyManager; or its super classes (declaration of 'com.google.crypto.tink.daead.AesSivKeyManager' appears in /data/app/com.app.appm-mak-CE5Ycx65IADcRe9FQw==/base.apk)
at androidx.security.crypto.EncryptedSharedPreferences$PrefKeyEncryptionScheme.<clinit>(EncryptedSharedPreferences.java:146)
at com.app.appm.Utils.getPrefs(Utils.java:455)
at com.app.appm.MainActivity.onCreate(MainActivity.java:184)
at android.app.Activity.performCreate(Activity.java:7136)
at android.app.Activity.performCreate(Activity.java:7127)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1271)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2893)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3048)
at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:78)
at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:108)
at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:68)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1808)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loop(Looper.java:193)
at android.app.ActivityThread.main(ActivityThread.java:6669)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858)
I/Process: Sending signal. PID: 12145 SIG: 9
Disconnected from the target VM, address: 'localhost:8601', transport: 'socket'
Команда, которая терпит неудачу:
return EncryptedSharedPreferences.create(
"app",
masterKeyAlias,
context,
EncryptedSharedPreferences.PrefKeyEncryptionScheme.AES256_SIV,
EncryptedSharedPreferences.PrefValueEncryptionScheme.AES256_GCM);
Значит ли это, что мне следует использовать другую схему? А как насчет текущего используемого файла sharedPreferences? Не получится из-за этого, не так ли? Есть идеи, что можно сделать? Спасибо