Androidx.security с помощью google protobuf - PullRequest
0 голосов
/ 30 апреля 2020

Я хотел реализовать 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 работать, но я не могу найти никакого другого решения.

Спасибо

...