【问题标题】:Caused by: com.google.crypto.tink.shaded.protobuf.InvalidProtocolBufferException: Protocol message contained an invalid tag (zero)原因:com.google.crypto.tink.shaded.protobuf.InvalidProtocolBufferException:协议消息包含无效标记(零)
【发布时间】:2023-02-14 17:24:39
【问题描述】:

启动活动时,我的应用程序在 getEncryptedSharedPrefs 崩溃:

    if(getEncryptedSharedPrefs().getString("pinSettingsLogin", "")!!.isEmpty()){
        getEncryptedSharedPrefs().edit()
            .putString("pinSettingsLogin" , "0000")
            .apply()
    }

出现此错误:

Caused by: com.google.crypto.tink.shaded.protobuf.InvalidProtocolBufferException: Protocol message contained an invalid tag (zero).

奇怪的是,这个 if 语句适用于 Android 10 和 11,但不适用于 Android 12。这个 if 语句在这里是因为在下面的“if”中,我检查 pinSettingsLogin = 0000 是否使其自行进入新活动。

    if(getEncryptedSharedPrefs().getString("pinSettingsLogin", "").equals("0000")){
        val i = Intent(this, SettingsActivity::class.java)
        startActivity(i)
        overridePendingTransition(R.anim.slide_in_right, R.anim.slide_out_left)
    }

【问题讨论】:

    标签: android android-studio kotlin


    【解决方案1】:

    您是否尝试过清除应用程序的缓存?

    这可能会解决问题!

    【讨论】:

    • 是的,这解决了我的问题。我之前尝试过 3 次,没有结果,但我想现在它可以工作了。
    • 我有一个应用程序更新。只有在那之后,这个解决方案才有效。也许重启后可以工作。
    • 有人可以解释一下是什么导致了这次崩溃以及如何在代码中修复它,我们不能指望用户会自己清除数据他只会诅咒应用程序然后离开
    【解决方案2】:
     implementation "androidx.security:security-crypto:1.1.0-alpha04"
    

    像文档中给出的那样初始化 sharedpreference:

     val keyGenParameterSpec = MasterKey.Builder(activity)
    .setKeyScheme(MasterKey.KeyScheme.AES256_GCM)
    .build()
    
            val sharedPref : SharedPreferences = EncryptedSharedPreferences
    .create(activity,"secret_shared_prefs", keyGenParameterSpec, EncryptedSharedPreferences.PrefKeyEncryptionScheme.AES256_SIV,
                EncryptedSharedPreferences.PrefValueEncryptionScheme.AES256_GCM)
    

    【讨论】:

      【解决方案3】:

      这是来自EncryptedSharedPreferences 的错误,问题发生在EncryptedSharedPreferences 的初始化上。

      查看here

      【讨论】:

        猜你喜欢
        • 2023-01-09
        • 2014-12-23
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-12-19
        • 2020-06-27
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多