When launching an activity my app crashes at getEncryptedSharedPrefs:
if(getEncryptedSharedPrefs().getString("pinSettingsLogin", "")!!.isEmpty()){
getEncryptedSharedPrefs().edit()
.putString("pinSettingsLogin" , "0000")
.apply()
}
With this error:
Caused by: com.google.crypto.tink.shaded.protobuf.InvalidProtocolBufferException: Protocol message contained an invalid tag (zero).
Weird thing is, this if statement works on Android 10 and 11 but not on Android 12. This if statement is here because in the ‘if’ below I check if the pinSettingsLogin = 0000 so that It goes to a new activity by it self.
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)
}
3
Answers
Have you tried clearing the app’s cache?
This might fix the problem!
Initialize sharedpreference like given in documentation:
This is a bug from
EncryptedSharedPreferences
, the issue happens on the initialization of theEncryptedSharedPreferences
.Check it out here