如何将文件复制到Android模拟器实例

183

我该如何使用Android Studio将.txt文件推送到模拟器?

11个回答

293
一种简单的方法是拖放。它会将文件复制到/sdcard/Download目录下。您可以复制整个文件夹或多个文件。请确保“启用剪贴板共享”已启用(在...->设置中查看屏幕截图中的切换按钮)。

enter image description here


17
这绝对是最简单的方式! - JFreeman
4
谢谢,这应该就是答案了! - HaiderSahib
1
找不到“启用剪贴板共享”选项。在MacBook上它在哪里? - Shirish Herwade
12
文件上传后,/sdcard/Download 文件夹仍然是空的。 - alex351
3
我发现我复制的文件夹在内部存储的下载文件夹中,而不是SD卡中。 - Santosh
显示剩余5条评论

158

更新(2020年5月): Android Studio有一个名为Device File Explorer的新工具。您可以通过以下两种方式访问它:

  1. 点击Android Studio窗口右下角的Device File Explorer图标。
  2. 如果您找不到该图标,请在Android Studio中按两次Shift键,将出现快速搜索窗口,然后在其中键入Device FileDevice File Explorer将出现在搜索结果中,您可以单击它。 打开设备文件管理器

然后,您可以导航到要在其中推送文件的文件夹。右键单击该文件夹并选择上传(或按Ctrl+Shift+O)。选择要上传的文件,它将上传文件到所需位置。

输入图片描述

使用adb.exe推送文件:

在Android 6.0+中,您应该使用相同的过程,但是您的Android应用程序无法使用DDMS文件浏览器访问推送到SDCARD中的文件。如果您尝试使用以下命令,则情况也是如此:

adb push myfile.txt /mnt/sdcard/myfile.txt

如果您在尝试在应用程序内读取文件时遇到EACCES(权限被拒绝)异常,这意味着您无法访问外部存储中的文件,因为它需要一项危险权限。

对于这种情况,您需要使用Android 6.0及更高版本中的新权限系统手动请求授权。有关详细信息,您可以查看Android教程此链接

旧版Android Studio版本的解决方案:

如果您想使用图形界面进行操作,可以按照以下步骤:

工具 --> Android --> Android设备监视器

enter image description here

之后,Android设备监视器(DDMS)窗口将打开,并且您可以使用文件浏览器上传文件。您可以选择类似于/mnt/sdcard的地址,然后将文件推送到sdcard。 enter image description here


这个方法对复制逻辑起作用。然而,在使用AS-ide 2.3时,在DDMS中,/mnt/sdcard不会出现为可展开的文件夹,并且显示为空 - 即使在重新启动DDMS后也是如此。当使用adb shell导航到该文件夹时,我验证了复制命令的工作。感谢您提供解决方案的指针。 - Gene Bo
1
您也可以选择一个文件夹,然后右键单击并选择“上传...”,然后选择源文件夹或文件的路径。 - CoolMind
推文件到系统时出现了权限被拒绝的错误,有什么想法吗? - Beeing Jk
11
旧版解决方案中,在“工具”下没有“Android”选项卡。 - Shirish Herwade

93

您可以通过终端使用ADB将文件从桌面传输到模拟器。

adb push <file-source-local> <file-destination-remote>

您也可以将文件从模拟器复制到桌面

adb pull <file-source-remote> <file-destination-local>

但是,您也可以使用Android设备监视器来访问文件。单击工具栏中可以找到的Android图标。它需要几秒钟来加载。加载完成后,您可以看到一个名为“文件资源管理器”的选项卡。现在,您可以从那里拉取/推送文件。


1
有没有办法在Android Studio中做到这一点,就像我们在Eclipse中所做的那样?@shifar - Girish
Android Studio 1.2 中没有名为“文件浏览器”的选项卡。 - Girish
搞定了。ADM 打开新窗口就像 Eclipse UI 一样。 - Girish
是的,Android设备监视器会打开一个类似于Eclipse DDMS的新窗口。 - Girish
在Android Studio中创建新模拟器时,请确保为外部存储器指定1GB。 - Someone Somewhere
显示剩余2条评论

66

Android设备监视器在Android Studio中已不可用。

如果您正在使用Android Studio 3.0及以上版本:

  1. 转到位于Android Studio右下角的“设备文件浏览器”。
  2. 如果连接了多个设备,请从顶部的下拉列表中选择所需设备。
  3. mnt>sdcard是模拟器上SD卡的位置。
  4. 右键单击文件夹,然后单击“上传”。请参见下面的图像。

注意:您可以上传文件夹,而不仅仅是单个文件。

设备文件浏览器


我将文件保存在 sdcard/Download 文件夹中,然后在模拟器的文件选择器应用程序中,使用汉堡菜单并选择下载文件夹。 - lukegjpotter
2
我把文件放到sdcard / Download中,但模拟器的文件选择器没有显示任何内容。 - Rafael Lima
3
无法运行。storage/emulated/路径是我们需要放置文件的地方,但它显示“权限被拒绝”。 - Darush

12

我正在使用Android Studio 3.3。

前往 View -> Tools Window -> Device File Explorer。 或者你可以在Android Studio的右下角找到它。

输入图片描述

如果模拟器正在运行,设备文件浏览器将显示模拟器存储上的文件结构。

输入图片描述

在这里,你可以右键单击一个文件夹并选择"上传"来放置文件。

输入图片描述

我通常使用mnt - sdcard - download文件夹。 谢谢。


每个 Android 版本都有不同的文件夹,你能告诉我们关于每个版本的信息吗?例如 30、29、28、27、26... 这将是有用的信息。 - DragonFire

10

当您像这里的答案所示那样将文件从桌面拖放到模拟器中后:

https://dev59.com/_10a5IYBdhLWcg3wW3ca#44885506

您的文件位置将会是:

Android 19, 21, 22 /storage/sdcard/Download

Android 23, 24, 25, 26, 27, 28, 29, 30 /storage/emulated/0/Download


9

打开命令提示符并给出sdk的platform-tools路径。 例如:C:\Android\sdk\platform-tools> 然后像下面这样输入'adb push' 命令,

C:\Android\sdk\platform-tools>adb push C:\MyFiles\fileName.txt /sdcard/fileName.txt

此命令将文件推送到模拟器的根目录。


4

参考johnml1135的回答,但不完全适用。

自我调查后,使用官方文档,现在可以了:

使用拖放 实际上 是工作的,但是使用安卓自带的应用程序下载,则无法找到复制的文件,因为所谓的/sdcard/Download文件夹不存在。

最后使用其他文件管理器应用程序,例如

ES文件浏览器

然后可以看到真正的路径是

/storage/emulated/ 0 /Download/

其中包含复制的文件,例如

/storage/emulated/0/Download/chenhongyu_lixiangsanxun.mp3

拖放更多mp3文件后:


太好了!我使用了文件路径/storage/emulated/0/Downloads,它立即起作用了。 - Kyle Burkett

1

只需要将文件拖放到ADB中相应的目录即可。


0
在 Windows 10 上,使用 Android Studio 模拟器。
位于 yourFile.xml 所在的目录中。
在终端上输入命令:
 adb push yourFile.xml \C:\Users\yourUN\.android\avd\Pixel_4_API_29.avd\mnt\sdcard

Pixel_4_API_29 是模拟器的名称,选择您在模拟器上使用的设备


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接