【问题标题】:failure of adb to copy .apk file to the Android Emulator: no such file or directoryadb 无法将 .apk 文件复制到 Android 模拟器:没有这样的文件或目录
【发布时间】:2012-11-19 23:56:17
【问题描述】:

我在让 MyFirstApp (Hello World) Android 应用程序在模拟器中工作时遇到了困难。

我正在按照以下位置的说明进行操作:

http://developer.android.com/training/basics/firstapp/running-app.html

Windows7-64 / Eclipse

该应用通过 USB 连接到我的手机。

采取的步骤:

  1. 确保我的 PATH 环境变量包含 Android SDK。好的。

  2. 启动 C:/Users/(me)/AppData/Local/Androd/android-sdk/platform-tools/adb.exe。好的。

  3. 从 Eclipse 启动模拟器。好的,它出现了。

  4. 验证 MyFirstApp.apk 是否存在于 Eclipse 工作区 MyFirstApp/bin 目录中。

  5. 从 Eclipse 运行 MyFirstApp 应用程序。

Eclipse 控制台打印出来:


[2012-12-01 23:02:15 - MyFirstApp] Android 发布!

[2012-12-01 23:02:15 - MyFirstApp] adb 运行正常。

[2012-12-01 23:02:15 - MyFirstApp] 执行 com.example.myfirstapp.MainActivity 活动启动

[2012-12-01 23:02:15 - MyFirstApp] 自动目标模式:使用现有模拟器 'emulator-5554' 运行兼容的 AVD 'Galaxy_Captivate_2.2'

[2012-12-01 23:02:15 - MyFirstApp] 将 MyFirstApp.apk 上传到设备“emulator-5554”

[2012-12-01 23:02:17 - MyFirstApp] 无法在设备“emulator-5554”上安装 MyFirstApp.apk:没有这样的文件或目录 [!!红色(错误)!!]

[2012-12-01 23:02:17 - MyFirstApp] com.android.ddmlib.SyncException: 没有这样的文件或目录 [!!红色(错误)!!]

[2012-12-01 23:02:17 - MyFirstApp] 发布已取消! [!!红色(错误)!!]

我尝试从命令行安装 adb:

adb install MyFirstApp.apk

得到了

未能将“MyFirstApp.apk”复制到“/data/local/tmp/MyFirstApp.apk”:没有这样的文件或目录

/data/local/tmp/MyFirstApp.apk rm 失败,没有这样的文件或目录

经过数小时的搜索,我还没有在其他任何地方看到此问题的报告。

如果我跑了

adb 外壳

我可以看到 /data 目录。它显示为空,但权限为 drwxrwx--x,这会导致我看不到任何内容。

因此,由于某种原因,.apk 文件似乎没有被复制到模拟器中。

另外一件可疑的事情:如果我跑了

adb logcat

然后这会打印出一份投诉清单,包括,

E/dalvikvm(3520): 无法打开 dex 缓存 '/data/dalvik-cache/system@framework@core.jar@classes.dex': 没有这样的文件或目录

...

W/dalvikvm(3620):JNI_CreateJavaVM 失败。

任何帮助将不胜感激。

Android SDK 工具第 21 版

Android SDK 平台工具 Rev 16

Android 2.2 (API 8)

SDK 平台第 3 版

【问题讨论】:

    标签: android-emulator


    【解决方案1】:

    感谢路易斯的建议。

    确实,模拟器没有正确启动。它卡在黑色的“A N D R O I D 死亡屏幕”中。我了解到模拟器没有完全启动,直到它显示像普通 Android 手机一样的屏幕。

    目录名不是问题,我已经在使用默认的 C:/Users/... 目录,而不是 C:/Program Files。

    但是,今天它起作用了。我不完全确定为什么它今天有效,而不是以前。这是我所做的:

    1. 从 SDK 管理器安装了最新版本的 Android SDK 工具和 Android SDK 平台工具。自从我在 2012 年 12 月第一次尝试后,就有了一个新版本。

    2. 删除目录,C:/Users/[my-username]/.android/avd

    3. (来自 Eclipse)使用内存选项和内部存储的默认值创建了一个新的 AVD。

    4. 通过 Eclipse 从 Android 虚拟设备管理器启动模拟器。在 Eclipse 中打开 LogCat 视图有助于在模拟器启动时查看进度。

    【讨论】:

      【解决方案2】:

      我也遇到了同样的问题。 你可以试试: 首先,您可以将 apk 包推送到 sdcard: adb push test.apk /sdcard/

      然后,从 sdcard 安装 apk: adb shell pm install /sdcard/test.apk

      希望能帮到你!

      【讨论】:

        【解决方案3】:

        data 目录中应该有大约 20 个目录,甚至在您安装应用程序之前。因此,如果您发现它为空,则不是您的应用有问题,而是模拟器或 sdk 安装有问题。

        导致奇怪行为的常见问题来自在安装SDK 的目录名称中使用spaces

        尝试在 Ecipe 菜单中选择 WindowPrefrencesAndroidSDK Location,而不是:

        C:\Program Files (x86)\Android\android-sdk
        

        类型(在 32 位机器中):

        C:\Progr~1\Android\android-sdk
        

        或(在 64 位机器上)

        C:\Progr~2\Android\android-sdk
        

        如果这不能解决您的问题,我建议重新安装 ADT 和 SDK。

        问候。

        【讨论】:

          【解决方案4】:

          我遇到了同样的问题。原因在于错误的 apk 文件:)。它被损坏了。

          只是,试着检查一下。

          【讨论】:

            【解决方案5】:

            我今天尝试安装到模拟设备时遇到了同样的错误。结果发现没有可用空间,这就是找不到 APK 文件的原因(因为推送失败,但由于某种原因 adb 不知道这一点并提供了一个信息性错误)。

            通过创建新的 AVD,这个问题可能会“消失”。

            【讨论】:

              【解决方案6】:
              adb shell rm -rR -f /data/local/tmp
              

              然后

              mkdir /data/local/tmp
              
              chmod 777 /data/local/tmp
              

              试试

              adb install again
              

              当然,你可以选择其他权限模式

              【讨论】:

                猜你喜欢
                • 2015-01-22
                • 1970-01-01
                • 2019-06-15
                • 2011-11-20
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 2020-04-08
                相关资源
                最近更新 更多