Nexus 6Pデバイスでこの問題が発生しましたか? Nexus 6P(Google Fiを実行)でのみこの問題が発生します。
アプリをインストールすると、userIsLoggedIn
の中にSharedPreferences
のキーがあります。
このブロック:
boolean userIsLoggedIn = SharedPrefs.userIsLoggedIn(this);
// Then in another class...
public static boolean userIsLoggedIn(Context context) {
// For users updating apps, if the previous key-value is a string, convert it to boolean
try {
return context.getSharedPreferences(LOGIN_FILE, Context.MODE_PRIVATE)
.getBoolean(USER_LOGGED_IN, false);
} catch (ClassCastException e) {
Logger.e(TAG, e.getMessage());
context.getSharedPreferences(LOGIN, Context.MODE_PRIVATE)
.edit()
.putBoolean(USER_LOGGED_IN, false)
.commit();
return context.getSharedPreferences(LOGIN, Context.MODE_PRIVATE)
.getBoolean(USER_LOGGED_IN, false);
}
}
これで、新しいアンインストールでfalse
が返されますが、新規インストールでこれをデバッグすると、アプリの起動時に次のようになります。
問題があれば、Proguardも実行します。Proguardが有効になっていないAPKでデバイスを実行すると、正常に実行されます。他のデバイスでproguardを実行しても問題ありません。
Nexus 6PがAndroid Mを実行しているので、 自動バックアップ が問題だと思います。
allowBackup を使用して停止できると思います。
この回答を確認してください: https://stackoverflow.com/a/32010582/336312
Android M以上のバージョンでは、Googleドライバーでアプリケーションのバックアップを保持します。これを無効にするには、プロジェクトに移動しますmanifest file ApplicationセクションセットAndroid:allowBackup="true"
をfalseに変更します。
マニフェストに追加できます:
Android:fullBackupContent="false"