繁体   English   中英

Android设备监视器文件资源管理器无法使用运行API 24+的模拟器

[英]Android Device Monitor File Explorer not working with emulator running API 24+

所以,正如问题所述。 Android设备监视器未在“文件资源管理器”视图中显示任何内容 这仅适用于运行Android API Level 24+的虚拟设备。

有解决方案吗

在此输入图像描述

直到Android Lollypop模拟器,我们可以访问文件资源管理器文件夹。 如果使用marshmallow或更高版本创建模拟器,则无法访问文件资源管理器。 这可能是API级别24+的错误。

一个临时解决方案,至少可以满足我的需求,是安装文件管理器.apk(我使用Astro文件管理器.apk) - 只需将.apk拖放到模拟器窗口即可。 另一个非常有用的实用工具--ImDisk - 让我们安装sdcard .img的虚拟设备。 如果将其作为只读弹出设备挂载,则可以实时访问虚拟设备文件系统

这是Android设备监视器中的错误,并已报告给谷歌。

根据Post,这个帖子将在补丁发布时更新。

使用adb命令行工具的变通方法:

root@mypc ~ $ adb kill-server
root@mypc ~ $ adb start-server
root@mypc ~ $ adb root

现在,您可以使用linux ls命令浏览文件系统:

root@mypc ~ $ adb shell ls -all /
total 3688
drwxr-xr-x  15 root   root         0 2017-04-21 11:11 .
drwxr-xr-x  15 root   root         0 2017-04-21 11:11 ..
drwxr-xr-x  29 root   root         0 2017-04-21 11:11 acct
drwxrwx---   6 system cache     4096 2017-01-06 12:11 cache
lrwxrwxrwx   1 root   root        13 1970-01-01 01:00 charger -> /sbin/healthd
...
-rw-r--r--   1 root   root      4853 1970-01-01 01:00 ueventd.rc
lrwxrwxrwx   1 root   root        14 1970-01-01 01:00 vendor -> /system/vendor

另一个临时解决方案是使用adb shell

首先,将数据库复制到SD卡

./adb shell run-as com.yourapplication cp /data/data/com.yourapplication/databases/yourFileName.db /sdcard

然后,将数据库文件提取到您的计算机

./adb pull /sdcard/yourFileName.db /Users/yourUserName/Desktop

它可能与新的Android文件夹权限有关。 如在另一个答案中发布,您可以使用:

root@mypc ~ $ adb root

获得对模拟器的root访问权限(无需重新启动adb)。 然后,您可以使用DDMS文件资源管理器或通过shell查看设备上的所有文件夹。 另一种选择是等待Android Studio 2.4版本中承诺的新文件浏览器。

如果您之后需要刷新画廊,我可以使用:

root@mypc ~ $ adb shell "am broadcast -a android.intent.action.MEDIA_MOUNTED -d file:///mnt/sdcard"

这将模拟SD卡的安装,这将触发媒体重新扫描。

它是一种替代方式。

创建一个bat文件配置APP_NAME,示例(com.example.com)

DESTINATION_FOLDER(myProjectFiles)

cd "C:\Users\USERNAME\AppData\Local\Android\sdk\platform-tools\"
adb shell run-as APP_NAME rm -R /sdcard/DESTINATION_FOLDER
adb shell run-as APP_NAME cp -R cache/ /sdcard/DESTINATION_FOLDER
rmdir C:\Users\USERNAME\Documents\DESTINATION_FOLDER /s /q
adb pull /sdcard/DESTINATION_FOLDER C:\Users\USERNAME\Documents\
timeout 5

配置您的bat文件后,双击运行它。 它将完成剩下的工作

我在Android设备监视器中也遇到了同样的问题。

我们使用的模拟器非常高,如Nougat 24+,所以为了超越这个,我们必须在级别级别运行模拟器,即Lollipop 22

作为另一种解决方法,我使用fileList()来获取我的应用程序的Files夹中的所有文件并将其记录到logcat:

String[] files = fileList();
// log files, or add a watch in the debugger...

也可以在cache文件夹中获取文件和目录:

String[] filesInCache = getCacheDir().list();

要么

File[] filesInCache = getCacheDir().listFiles();

我在Api 27(奥利奥)遇到了这个问题。 我尝试使用Lollipop创建模拟器,但与Oreo相同。 设备监视器为空。

重启电脑后一切正常。 这是Android Studio附带的许多问题的解决方案。 首先检查一下,而不是其他一切。

尝试一些方法:

  1. 单击设备窗口中的三角形图标,然后选择“重置adb”。
  2. 关闭模拟器,然后重新打开。
  3. 您现在可以使用Genymotion,这是最好的模拟器。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM