最近遇到一個問題,在后一版本覆蓋安裝前一版本的時候,然后啟動應用出現異常,歸納下原因有
一.在后一版本中數據庫有改變,比如字段類型,那么覆蓋安裝並沒有刪除點原來數據庫中的數據,很明顯,在后版本中就出現問題了
二.在后一版本中得sharepreferences的數據有改變,那么也會出現問題,比如原來的sharepreferences保存的一數據是boolean,在后一版本把保存的數據改為了string,問題就出現了。
那么在 content provider 和file保存數據的時候會不會也是這樣的?沒試過。
那么如何解決?
1.不允許覆蓋安裝,用戶先要卸載老版本,然后才能安裝新版本,卸載了老版本,跟老版本的數據就不會影響新版本。
該如何不允許覆蓋安裝?
經過分析,原來在版本發布的時候用的都是同一個簽名,apk文件的簽名一致就允許覆蓋安裝,因此用新的簽名發布apk就解決問題
即apk1用keystore1.
apk2用keystore2
2.去掉影響新版本的老數據。