【问题标题】:How to use adb command to push a file on device without sd card如何使用 adb 命令在没有 sd 卡的设备上推送文件
【发布时间】:2014-01-17 00:37:17
【问题描述】:

如何将文件从计算机推送到没有 SD 卡的 Android 设备。我试过了:

C:\anand>adb push anand.jpg /data/local
3399 KB/s (111387 bytes in 0.032s)

C:\anand>adb push anand.jpg /data/opt
3199 KB/s (111387 bytes in 0.034s)

C:\anand>adb push anand.jpg /data/tmp
3884 KB/s (111387 bytes in 0.028s)

上面的命令将文件anand.jpg 移动到设备,但我没有在设备中得到这个jpg 文件。 我在cmd提示符下没有得到任何成功结果,我只得到:

3399 KB/s (111387 bytes in 0.032s).

【问题讨论】:

  • 尝试adb shell "cd /data/local && mkdir tmp" 然后adb push anand.jpg /data/local/tmp。如何检查设备上的文件,adb shell
  • @RC 我正在使用 ls 命令来检查文件。我至少在模拟器上的 DDMS 视图上得到了它。但我仍然没有在设备上得到它。当我尝试“adb push”命令时,它显示未找到真实设备的设备。但 adb devices 正在显示设备。
  • 我会停止模拟器,拔下设备,然后确保设备处于调试模式后,插入设备并重试
  • 这个问题似乎离题了,因为它与编程无关。请参阅帮助中心的What topics can I ask about here。也许Android Enthusiasts Stack Exchange 会是一个更好的提问地点。
  • RC 的建议在这个变体中对我有用:adb shell "cd /sdcard && mkdir temp" 然后abd push x.apk /sdcard/temp" 我最终将我的文件放在我 sdcard 上的临时文件夹中,并且能够从那里闪存。

标签: android adb


【解决方案1】:

在尝试了所有对我有用的答案之后

我在哪里将桌面上的文件推送到使用 adb 无线连接的 Android 设备 (Redmi K20 pro)。

此命令将文件推送到我手机上的下载文件夹

adb push ~/Desktop/notifications.drawio ./storage/emulated/0/Download

运行后如果出现权限被拒绝错误

尝试按顺序运行这些命令(这​​基本上会改变目录权限)

adb shell

chmod 777 /data/local/tmp

exit

然后运行尝试adb push 命令

我有documented this here 随时分享您的观点并帮助改进它。

【讨论】:

    【解决方案2】:

    在 Mac 中:通过 adb 推送文件

    adb push /Users/Downloads⁩/amazon.sdktester.json '/mnt/sdcard/amazon.sdktester.json'
    

    【讨论】:

      【解决方案3】:

      这可能是您可能会读到的最佳答案。 设置 Android Studio 然后只需查看并打开设备资源管理器。 右键单击文件夹并上传文件。

      【讨论】:

        【解决方案4】:

        我是用这个命令做的:

        语法:adb push filename.extension /sdcard/0/

        示例:adb push UPDATE-SuperSU-v2.01.zip /sdcard/0/

        【讨论】:

        • 刚刚将一个 mp3 文件从 mac osX 移动到 android 5.0 设备,我必须在设备上写入文件名,即“adb push /file.mp3 /sdcard/fileOrOtherFileName. mp3"
        【解决方案5】:

        试试这个推入内部存储。

        adb push my-file.apk ./storage/emulated/0/

        在一加设备中工作,无需 SD 卡。

        【讨论】:

        • 适用于三星
        【解决方案6】:

        来自 Ubuntu 终端,以下对我有用。

        ./adb push '/home/hardik.trivedi/Downloads/one.jpg' '/data/local/'
        

        【讨论】:

        • 我正在使用 windows cmd 提示符,你可以告诉我在 windows 中如何做。
        • 只需删除 './' 并使用简单的 adb 或 adb.exe。如果您还没有为 android 设置路径,请确保您在 platform-tools 文件夹中。
        • 我们可以在不root手机的情况下这样做吗?
        • @HardikTrivedi:您是说一般情况下使用 adb push 或这个特定的文件目的地需要生根吗?我正在使用 adb push 在非 root 设备上的 Android 设备 SD 卡上写入文件。
        • 推送命令也适用于非root手机,只有/data文件夹需要root用户。
        【解决方案7】:

        按照以下步骤操作:

        转到 Android Sdk,然后转到终端或控制台上的“平台工具”路径

        (在 mac 上,默认路径为:/Users/USERNAME/Library/Android/sdk/platform-tools)

        要检查您设备上安装的 SDCards(外部和内部),请执行以下命令:

        • 1) ./adb shell(按回车键/回车键)
        • 2) cd -(回车/回车)

        现在您将看到 Android 设备中的目录和文件列表 在那里你可能会找到 /sdcard 和 /storage

        • 3) cd /storage(回车/回车)
        • 4) ls(按回车键/回车键)

        您可能会看到 sdcard0(通常 sdcard0 是内部存储)和 sdcard1(如果存在外部 SDCard)

        • 5) 退出(回车/回车)

        从 adb shell 中出来

        • 6) ./adb push '/Users/SML/Documents/filename.zip' /storage/sdcard0/path_to_store/(回车/回车)

        复制文件

        【讨论】:

          【解决方案8】:

          因为不同的版本有不同的路径。这是一个通用的解决方案:

          寻找路径……

          1. 在命令行中输入adb shell
          2. 然后ls 并输入。

          现在您将看到 Android 设备的文件和目录。现在结合lscd dirName 找到内部或外部存储的路径。

          在根目录中,目录名称将类似于mnt, sdcard, emulator0,

          示例:adb push file.txt mnt/sdcard/myDir/Projects/

          【讨论】:

            【解决方案9】:

            就我而言,我有一个已移除的 SDCard 仍在 Android 中注册。 所以我在下面长按了我旧 SDCard 的条目:

            Settings | Storage & USB

            然后选择“忘记”。

            之后就正常了

            adb push myfile.zip /sdcard/

            工作正常。

            【讨论】:

              【解决方案10】:

              我的解决方案(以随机 mp4 视频文件为例):

              1. 将文件设置到设备:

                adb push /home/myuser/myVideoFile.mp4 /storage/emulated/legacy/
                
              2. 从设备获取文件:

                adb pull /storage/emulated/legacy/myVideoFile.mp4 
                

              获取代码中的路径:

              String myFilePath = Environment.getExternalStorageDirectory().getAbsolutePath() + "/myVideoFile.mp4";
              

              这就是全部。此解决方案不会出现权限问题,而且效果很好。

              最后一点:我想更改视频元数据信息。如果您想写入您的设备,您应该更改AndroidManifest.xml 中的权限。添加这一行:

              <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
              

              【讨论】:

                【解决方案11】:

                先运行下面的命令

                adb root
                adb remount
                

                然后执行你之前输入的内容

                C:\anand>adb push anand.jpg /data/local
                C:\anand>adb push anand.jpg /data/opt
                C:\anand>adb push anand.jpg /data/tmp
                

                【讨论】:

                  【解决方案12】:

                  某些版本的 android 不会触发适当的任务来更新文件系统的状态。 您可以触发更新文件系统状态的显式意图。 (我是在同一个OP的情况下才测试的)

                  adb shell am broadcast -a android.intent.action.MEDIA_MOUNTED -d file:///
                  

                  (您可以传递特定的文件路径,而不是像 file:///sdcard 这样的 file:///

                  【讨论】:

                  • 我想添加指定的东西。我已经使用这个命令一段时间了,但格式有点不同。 adb -s $device shell am broadcast -W android.intent.action.MEDIA_SEARCH。如果您连接了多个设备,则需要-s $device
                  【解决方案13】:

                  有时你需要扩展,

                  adb push file.zip /sdcard/file.zip

                  【讨论】:

                  • 我有 LG Nexus 5,您不能将外部 sdcard 放入其中,但内部存储器的一部分就像 sdcard 在这种情况下,sdcard 只是根级别的目录您可以当您在 shell 中调用 'ls' 以获取目录列表时,请通过调用 'adb shell' 来检查它
                  【解决方案14】:

                  您正在尝试写入系统文件夹。使用 ADB,您具有 root(管理员)访问权限,因此您可以看到 sdcard 是其中之一的系统文件夹,以便发送您可以使用的图片

                  D:\Program Files\Android\sdk\platform-tools\adb push am files\android sdk\adb.exe push C:\Downloads\anand.jpg /sdcard/pictures/

                  注意:C:\Downloads\anand.jpg 替换为图片的路径和名称..

                  【讨论】:

                    【解决方案15】:

                    我有一个没有外部存储的 Nexus 4。然而 Android 认为有一个,因为它挂载了一个名为“storage”的单独分区,挂载在“/storage/emulated/legacy”中,所以尝试推到那里:adb push anand.jpg /storage/emulated/legacy

                    【讨论】:

                    • 对于我的 nexus 4 /sdcard.file.zip 就像一个魅力。
                    猜你喜欢
                    • 2015-02-20
                    • 1970-01-01
                    • 1970-01-01
                    • 1970-01-01
                    • 1970-01-01
                    • 1970-01-01
                    • 1970-01-01
                    • 2013-04-03
                    • 1970-01-01
                    相关资源
                    最近更新 更多