【问题标题】:IOException everytime I try to upload anything to android emulator每次我尝试将任何内容上传到 android 模拟器时都会出现 IOException
【发布时间】:2010-02-15 23:06:39
【问题描述】:

我正在使用带有 Android 插件的 Windows 7 Ultimate 64 位版本和 Eclipse 3.5。每次我创建一个新项目并尝试发布它时,都会收到如下错误:

[2010-02-15 22:48:10 - EPG3]将 EPG3.apk 上传到设备 'emulator-5554'
[2010-02-15 22:48:15 - EPG3]未能在设备“emulator-5554”上上传 EPG3.apk
[2010-02-15 22:48:15 - EPG3]java.io.IOException:无法上传文件:超时
[2010-02-15 22:48:15 - EPG3]发射取消!

模拟器运行良好,adb 可以看到它,我什至可以从中 logcat,但它无法从中推送或拉取任何东西。 logcat 中没有任何内容表明模拟器甚至收到了任何命令。我是否打开或关闭防火墙都没有关系,或者我是否尝试调用 adb install 来绕过插件。即使是空白应用程序也无法正常工作。

有什么想法吗?

【问题讨论】:

  • 嗯,很奇怪。尝试从管理 shell 运行 adb?
  • 似乎没有什么不同。我以管理员 shell 的身份运行,并且诸如“adb install EPG3.apk”之类的命令永远挂在那里。例如,我可以输入“adb shell”,它连接没有问题,但尝试安装时没有任何问题。
  • 确保使用“以管理员身份运行”启动 Eclipse。
  • 以管理员身份运行没有区别。同样的问题 - IOException。我能够从模拟器中提取文件,我能够在其上运行 shell。我能够运行 logcat。我就是无法安装任何东西。

标签: android android-emulator


【解决方案1】:

不确定这是否有帮助,但当我尝试将项目上传到设备并通过增加“adb 连接超时(毫秒)”的值来修复它时遇到了同样的异常

PC: (eclipse -> 窗口 -> 设置 -> android -> ddms) MAC:(eclipse -> 首选项-> android -> ddms)

我对自己很生气,我花了这么长时间才找到设置,所以我想我会分享。

【讨论】:

    【解决方案2】:

    我刚刚遇到了这个错误。为了解决这个问题,我删除了我的 .apk 文件并再次构建了项目。瞧!立即上传作品。

    【讨论】:

    • 不幸的是,这不是它。它 adb 只是拒绝连接到模拟器。或者更确切地说,它会从命令行连接但永远坐在那里,或者从 Eclipse 插件中超时。无论哪种方式,它都在连接,只是什么都不做。我通过使用 64 位 JVM 解决了这个问题,所以我只能猜测这是在 64 位版本的 Windows 之上运行 32 位 JVM 引起的某种分歧。
    【解决方案3】:

    这不是资源加载的问题吗?尝试了所有 hello 示例都没有问题,现在第一个使用可绘制对象,现在像您一样出现 I/O 问题。

    我认为这是因为他们在示例中提到了可绘制文件夹,但在我的默认项目结构中,有 3 个可绘制文件夹。

    继续调试;)

    【讨论】:

      【解决方案4】:

      大约每 30-40 次编译我都会收到此错误。我不知道,但这个解决方案对我有用。

      转到 bin/ 文件夹并将 EPG3-debug.apk 文件重命名为 EPG3.apk(如果您使用调试模式)或 EPG3-release.apk 重命名为 EPG3.apk(在运行模式下),现在返回 Eclipse您可以调试/运行您的应用程序。这应该“取消”整个情况,因此您可以更改代码并在下次正常调试/运行程序时(直到您再次遇到此错误,然后您必须重复此提示)。

      【讨论】:

        【解决方案5】:

        请参阅这个问题 — Windows 7 和 Android 最初似乎并没有那么顺利:Failed to parse the output of 'adb version'?

        您可以远程登录到 localhost 5037 吗?这就是 adb 服务器侦听来自 adb 客户端的传入连接的地方。

        【讨论】:

        • 是的,我可以远程登录到 5037 没有问题。如果我输入随机字符,它就会消失,我还可以远程登录到 5554 和 5555,这是模拟器打开的端口。 5554 端口也响应命令。我认为这可能是我的 JDK。我做了很多 Java 开发,所以我有几个版本,但我已经确认我使用的是 j2se 6 32 位版本。
        【解决方案6】:

        您是否尝试按照here 的描述将工具目录的路径添加到系统 PATH 中?

        【讨论】:

        • 是的,试过了。据我所知,问题不在于 adb 正在运行,也不在于模拟器正在运行,而在于让 adb 将任何内容上传到模拟器。据我了解,Eclipse 插件是通过我看到的 IOException 实现的,而当我通过 adb 执行它时,它只是无限期地挂起。我要补充一点,我的 adb 也不会将任何内容上传到连接的设备。如果我尝试诸如 adb -d install foo.apk 之类的东西,它就会永远挂在那里。在第二台机器上通过 Ubuntu 一切正常(尽管 adb 服务器必须使用 sudo 运行才能安装到 USB 设备)。
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-03-04
        • 2011-04-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-05-31
        相关资源
        最近更新 更多