Android设备监视器“data”文件夹为空

问题描述 投票:40回答:9

我已经测试了创建,插入和检索数据到我的应用程序数据库,并知道它通过使用日志语句工作。

但是,我希望加快测试并使用Android设备监视器。但是,虽然db存在并且存储了数据,但在下面访问时,data文件夹为空:

enter image description here

为什么会这样呢?如何配置它来显示db文件和内容?

android sqlite android-studio
9个回答
39
投票

使用模拟器解决问题

文件夹/data可能为空,因为您缺少正确的权限。要解决它,我必须执行以下命令。

adb shell
su

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

chmod -R 777 /data

修改文件夹(和递归子文件夹)/data的权限,以使它们出现在Android设备监视器工具中。

adb root

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

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

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

24
投票

除了@Steven K的答案之外:如果您想获得对数据的访问而无需使用真实设备,您需要在API 23(或更低版本)的模拟器中运行您的应用程序。在部署Android设备监视器时,23以上的API会导致问题,这是一个known problem


8
投票

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

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


6
投票

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

  1. 导航到/ Users / Username / Library / Android / sdk / platform-tools
  2. 执行./adb root

而已。问题解决了。


5
投票

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

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

How to access data/data folder in Android device?


4
投票

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

  1. 您需要具有root访问权限的电话才能使用ADM(Android设备监视器)浏览数据文件夹。

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

  1. 您需要以root模式运行ADB,执行以下操作:adb root

如果你只是想看看你的数据库和表格,那么最好的方法是使用Stetho。对于使用SQLiteFacobook developed buit的每个Android开发人员而言,这是一个非常酷的工具。

Steps to use the tool

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

'compile'c​​om.facebook.stetho:stetho:1.4.2'

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

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

chrome://inspect/#devices

屏幕截图如下_

ChromeInspact

ChromeInspact

你的DB

Your DB

希望这对大家有所帮助! :)


1
投票

我和API_25有同样的问题,它对我不起作用。

配置API_23 emulator,它将适用于API_23


0
投票

在cmd GoTo中:

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

执行:

adb root

完成


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 webstore在Google Chrome中安装Sqlite Manager扩展程序,并使用它来查看和管理导出的数据库。

如果您有根电话,您可以按照上述相同的说明操作。

© www.soinside.com 2019 - 2024. All rights reserved.