Android设备监控器"数据"文件夹是空的

时间:2016-01-05 02:40:35

标签: android sqlite android-studio

我已经测试了在我的应用程序数据库中创建,插入和检索数据,并且通过使用Log语句知道它的工作原理。

但是,我希望加快测试并使用Android设备监视器。但是,尽管存在db并且存储了数据,但在下面访问时,t.references :organization, foreign_key: true 文件夹为空:

enter image description here

为什么会出现这种情况?如何配置它来显示db文件和内容?

9 个答案:

答案 0 :(得分:39)

使用模拟器解决问题

文件夹/data可能为空,因为您缺少相应的权限。为了解决这个问题,我必须执行以下命令。

adb shell
su

这些命令在模拟器中启动shell并授予root权限。命令adb位于Android SDK的platform-tools文件夹中,通常安装在MacOS上的~/Library/Android/sdk/

chmod -R 777 /data

修改文件夹(和递归子文件夹)/data的权限,以使它们出现在工具A ndroid Device Monitor 中。

adb root

最后,此命令以root身份重新启动adb。要小心,它只适用于开发版本(通常是模拟器版本)。

之后,您可以看到文件夹/data的内容并传输其中的数据。您也可以使用adb pull <remote> <locale>在控制台中执行此操作,例如:

adb pull /data/data/<app name>/databases/<database> .

答案 1 :(得分:24)

除了@Steven K的回答:如果您想要获取对数据的访问而无需使用真实设备,您需要使用模拟器中运行应用程序> API 23 (或更低)。在部署Android设备监视器时,23以上的API可能会导致问题{。{3}}。

答案 2 :(得分:8)

它不是空的......你只是没有权限在设备上查看该文件夹。

在模拟器中试用它,因为你有root权限,它会对你有用。

答案 3 :(得分:6)

如果有人遇到上述问题,请按照以下步骤在终端窗口中进行操作:

  1. 导航至/ Users / 用户名 / Library / Android / sdk / platform-tools
  2. 执行./adb root
  3. 就是这样。问题解决了。

答案 4 :(得分:5)

在开发期间将数据库存储在公用文件夹中可能更容易。

或者你可以看到这篇文章:

How to access data/data folder in Android device?

答案 5 :(得分:4)

如果要浏览设备数据(数据/数据)文件夹,有两种方法。

  1. 您需要拥有root权限的手机才能使用ADM(Android设备监视器)浏览数据文件夹。
  2.   

    ADM位置 - (YOUR_SDK_PATH \ Android \ sdk \ tools)

    1. 您需要以root模式运行ADB,执行以下操作:adb root
    2. 如果您只想查看数据库&amp;表格然后最常用的方法是使用Stetho。非常酷的工具,适用于SQLite使用Facobook developed buit的每位Android开发人员。

      Steps to use the tool

      1. 在应用程序的gradle文件(Module:app)
      2. 中添加以下依赖项
          

        &#39;编译&#39; com.facebook.stetho:stetho:1.4.2&#39;

        1. 在Activity onCreate()方法
        2. 中添加以下代码行
          @Override
           protected void onCreate(Bundle savedInstanceState) {
           super.onCreate(savedInstanceState);
           Stetho.initializeWithDefaults(this);
           setContentView(R.layout.activity_main);
           }
          

          现在,构建您的应用程序&amp;当应用程序运行时,您可以通过在URL中打开chrome来浏览您的应用程序数据库:

          chrome://inspect/#devices
          

          屏幕截图同样如下_

            

          ChromeInspact

          ChromeInspact

            

          您的数据库

          Your DB

          希望这会对所有人有所帮助! :)

答案 6 :(得分:1)

我遇到API_25同样的问题,它对我不起作用。

配置API_23 emulator,它将适用于API_23

答案 7 :(得分:0)

在cmd转到中:

C:\Users\UserName\android-sdks\platform-tools

执行:

adb root

完成

答案 8 :(得分:0)

如果您使用的是Windows,请按照以下说明进行操作:

  1. 在android模拟器中启动您的应用。
  2. 然后以管理员身份打开命令提示符,并导航到sdk路径,例如cd C:\Android\sdk\platform-tools
  3. 键入adb root
  4. 然后键入adb pull /data/data/ name-of-your-package /databases/name-of-your-database
  5. 您将在名为platform-tools的文件夹中找到数据库。

然后,您可以通过chrome网站商店在Chrome浏览器中安装Sqlite Manager扩展程序,并使用它来查看和管理您导出的数据库。

如果手机已植根,则可以按照上述相同的说明进行操作。