使用ADB替换应用程序的SQLite数据库

5
我试图在已经root过的设备上使用ADB替换我的应用程序中的数据库。我按照以下步骤操作:
  1. $ adb shell
  2. run-as my.app.package
  3. cd databases
  4. rm my_database.db
  5. chmod 777 .
  6. exit
  7. exit
  8. $ adb push my_database.db /data/data/my.app.package/databases/my_database.db
新的数据库成功地被复制。但是当我再次启动我的应用程序时,似乎新的数据库被删除并重新创建了。为什么呢?
谢谢。

因为数据库版本的原因,请检查数据库版本是否相同或在onUpgrade()函数中移除drop语句(不建议这样做)。 - insomniac
1个回答

1
我不知道为什么,但现在它可以工作了。我遵循了以下步骤:
  1. 打开应用程序(在我的应用程序中,数据库是在主活动中创建的)
  2. 在应用程序打开的情况下按照问题中提到的步骤进行
  3. 关闭应用程序并将其从内存中删除
  4. 重新打开应用程序
两个数据库版本相同,并且我没有在 onUpgrade 方法中编写任何代码。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接