【问题标题】:Pulling SQLite database from Android 4.3从 Android 4.3 中提取 SQLite 数据库
【发布时间】:2013-10-16 18:02:03
【问题描述】:

我正在新的 Nexus 7 上运行最新版本的 Android。我正在开发一个使用 SQLite 数据库来存储数据的应用程序,我想在我的计算机上查看它。

我无法运行adb -d shell 后跟run-as my.package.name,我会收到权限被拒绝错误。我也不能以 root 身份运行 adb:adbd cannot run as root in production builds。如果我尝试使用adb pull /data/data/package/databases/database > C:/Users/Me/Desktop/database.sqlite,我也会收到权限被拒绝错误。

有什么解决方法吗?我不想根设备。

【问题讨论】:

  • 还有一些测试代码到您的应用程序以将数据库复制到 sdcard,例如主布局上的一个按钮 - “复制数据库”

标签: android adb


【解决方案1】:

然后转到 adb shell

run-as my.package.name cat /data/data/package/databases/database >/sdcard/db

adb pull /sdcard/db

【讨论】:

  • 这应该可以工作,但请确保在应用程序标签内的清单中包含 android:debuggable="true"。
  • run-as: Package 'my.package' is unknown。是的,我把my.package改成了右边的。
  • @CarlosPaulino 我认为 debuggable 默认设置为 true 如果您将其排除在清单之外
  • 在 Android 4.3 真实设备上,运行“run-as”命令后,我无法访问 /sdcard/db。因此,我使用 cat 复制了数据库并使用 chmod 为其设置了 777 权限。我从 run-as 退出,然后我能够运行 cat 将数据库的新副本到 /sdcard。
  • 它在 Android 4.4.2 中不起作用。运行方式:包“mypackage”未知。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-05-08
  • 2014-06-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多