1、問題
目前只有一個google手機之前安裝了app,里面有room寫的數據庫,后面把app卸載了,再次安裝新的app(修改了數據庫里面的字段),啟動奔潰。
?
?
?
?
?
?
?
?
?
?
2、分析
提示數據庫錯誤,很明顯就像以前的app里面的數據庫沒有刪除一樣,然后猜測是不是這個手機卸載app了沒有把數據庫刪除干凈
然后查看AndroidMani.xml文件的allowBackup屬性
android:allowBackup="true"
Android API Level 8及其以上Android系統提供了為應用程序數據的備份和恢復功能,此功能的開關決定于該應用程序中AndroidManifest.xml文件中的allowBackup屬性值[1] ,其屬性值默認是true。當allowBackup標志為true時,用戶即可通過adb backup和adb restore來進行對應用數據的備份和恢復,這可能會帶來一定的安全風險。
在api 23上,則需要將allowBackup設置為false才能依賴數據庫 在卸載時被清除
?
?
?
?
?
?
?
?
?
?
3、解決辦法
在androidManifest.xml里面把allowBackup屬性搞成false就行
android:allowBackup="false"
?如果編譯不過再在后面加上這個
tools:replace="android:label,android:icon,android:theme,android:allowBackup"
?