【问题标题】:How to get files out of Android emulator如何从Android模拟器中获取文件
【发布时间】:2019-04-07 08:56:22
【问题描述】:

我对 Xamarin Forms 和移动开发完全陌生。我正在按照互联网上的教程创建一个 Android 应用程序来试试我的测试应用程序。

该应用程序目前正在运行,我可以将数据存储在 Visual Studio 2017 的 Android 模拟器内的本地 SQLite 数据库中。

现在我想检查在我的 Windows 主机上创建的 SQLite 数据库。有什么方法可以从 Android 模拟器中获取创建的 SQLite 数据库?

我在谷歌上搜索并找到一篇文章告诉我使用 Visual Studio 中的“Android 设备监视器”,在这个监视器中我有一个名为“文件资源管理器”的选项卡,它似乎向我展示了一个看起来像 linux-y 的文件系统,所以我猜它是模拟Android的文件系统。 但是在这个“文件资源管理器”中,我在哪里可以找到我的 SQLite 数据库?

数据库已在文件夹System.Environment.GetFolderPath(System.Environment.SpecialFolder.ApplicationData) 中创建,我读到我会在文件夹“data”中找到我的数据库,但我无法在“Android 设备监视器”的“文件资源管理器”中打开此文件夹" 没有给我任何明显的理由。

在这件事上的任何帮助都会很棒。

【问题讨论】:

    标签: xamarin xamarin.forms visual-studio-2017 android-emulator sqlite-net


    【解决方案1】:

    原因:

    您没有读取或写入 db 文件的权限

    解决方案:

    1、打开一个终端

    2, cd [ANDROID_SDK_PATH](我在 Windows 上使用 cd D:\android-sdk)

    3、cd 平台工具

    4、adb shell(仅在只有一个模拟器运行时才有效)

    5、cd 数据/数据

    6、adb shell su -c "chmod 777 /data"

    7、adb shell su -c "chmod 777 /data/data"

    8、adb shell su -c "chmod 777 /data/data/[package_name]"

    9、adb shell su -c "chmod 777 /data/data/[package_name]/databases"

    10、adb shell su -c "chmod 777 /data/data/[package_name]/databases/*"

    【讨论】:

    • 它工作到第 5 步,在第 6 步我得到了一个/system/bin/sh: adb: not found。如果我已经在这个 shell 中(从第 4 步开始),我真的需要再次写 adb shell 吗?
    猜你喜欢
    • 2011-11-17
    • 2012-12-29
    • 2016-03-30
    • 2018-09-10
    • 1970-01-01
    • 2013-11-17
    • 2021-05-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多