2010-12-01 99 views
2

爲了發佈我的Android應用程序,我必須從開發過程中使用的com.example.project更改軟件包名稱。 儘管在更改包名後,我無法再訪問sqlite數據庫。我嘗試通過.adb訪問它,它適用於舊的軟件包名稱,但不適用於新的軟件包名稱。如何在Android中更改包名後訪問我的Sqlite數據庫?

如何訪問數據庫爲了把它放在新的包下?我有一箇舊的未改變的項目文件的副本。

非常感謝! AK

+0

你創建從代碼數據庫?或者你已經有了sqlite文件? – Cristian 2010-12-01 17:39:43

+0

我在項目中使用了它,我唯一做的是更改軟件包名稱。當我從命令提示符訪問它時,它在它的舊包名下。有沒有辦法移動它,或複製它? – kakka47 2010-12-01 18:00:36

回答

3

這是模擬器還是手機?如果您在手機上的發展,並已建立了一個數據庫,你想:

  • 如果手機根植 - 使用文件資源管理器(或DDMS查看文件瀏覽器),並從/data/data/com.example.prackage/databases得到它,並把它放在你的新的包文件夾。

  • 如果手機沒有固定 - 如果您有原始軟件包代碼,請創建備份腳本以複製文件夾/data/data/com.example.prackage/databases中的sqlite文件 - 您還需要知道數據庫文件名。然後在新軟件包中創建代碼的反轉,將文件從SDCard複製到新軟件包DB文件夾。

  • 如果在模擬器上 - 使用DDMS視圖文件資源管理器從數據庫文件夾中獲取文件。

此鏈接可以幫助備份和恢復:

Backup/Restore Sqlite to SDCard

UPDATE

一種方法,使用DDMS文件資源管理器

  1. 導航到數據/ data/com.old.package/databases
  2. 選擇數據庫文件
  3. 單擊軟盤上有一個箭頭(文件瀏覽器的右上角)
  4. 保存文件的地方,你知道的。
  5. 導航至data/data/com.new.package/databases
  6. 用箭頭點擊電話。
  7. 查找剛剛保存的文件。

這應該將數據庫複製到新包中,以便您可以像以前那樣使用它。

以上是使用從命令提示符亞行的DB文件從舊的包複製到新包的GUI,像這樣:

adb pull /data/data/com.example.package/databases C:\tempdb

這應該使的副本舊的數據庫,那麼:

adb push C:\tempdb /data/data/com.example.package/databases

相關問題