Я хотел реализовать androidx.security
в своем приложении, чтобы зашифровать мой sharedpreferences
.
У меня было мало проблем с построением зависимостей этого, но в итоге приложение запустилось.
Затем, когда я подхожу к строке, где я EncryptedSharedPreferences.create
, я получаю следующую ошибку:
java.lang.NoSuchMethodError: No static method registerDefaultInstance(Ljava/lang/Class;Lcom/google/protobuf/GeneratedMessageLite;)V in class Lcom/google/protobuf/GeneratedMessageLite; or its super classes (declaration of 'com.google.protobuf.GeneratedMessageLite' appears in /data/app/com.example.myapp-1/base.apk:classes3.dex)
at com.google.crypto.tink.proto.AesSivKeyFormat.<clinit>(AesSivKeyFormat.java:248)
at com.google.crypto.tink.proto.AesSivKeyFormat.newBuilder(AesSivKeyFormat.java:129)
at com.google.crypto.tink.daead.DeterministicAeadKeyTemplates.createAesSivKeyTemplate(DeterministicAeadKeyTemplates.java:45)
at com.google.crypto.tink.daead.DeterministicAeadKeyTemplates.<clinit>(DeterministicAeadKeyTemplates.java:38)
at androidx.security.crypto.EncryptedSharedPreferences$PrefKeyEncryptionScheme.<clinit>(EncryptedSharedPreferences.java:146)
at com.example.myapp.SignInActivity.lambda$null$1$SignInActivity(SignInActivity.java:129)
at com.example.myapp.-$$Lambda$SignInActivity$j5WyCkLUVlBZT6WQVBcMkDLDozQ.onComplete(lambda)
at com.google.android.gms.tasks.zzj.run(Unknown Source)
at android.os.Handler.handleCallback(Handler.java:751)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:154)
at android.app.ActivityThread.main(ActivityThread.java:6077)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:866)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:756)
Есть идеи, как это решить?
Я почти уверен, что это потому, что Я использовал
exclude group: "com.google.protobuf", module: "protobuf-javalite"
В моем build.gradle
, чтобы заставить androidx.security
работать, но я не могу найти никакого другого решения.
Спасибо