Android 无法在设备上安装 HelloWorld.apk (null) 错误
Posted
技术标签:
【中文标题】Android 无法在设备上安装 HelloWorld.apk (null) 错误【英文标题】:Android Failed to install HelloWorld.apk on device (null) Error 【发布时间】:2011-07-10 22:28:48 【问题描述】:我是 android 新手。当我在 Eclipse 中运行我的 android 应用程序时,我在控制台中收到这些消息:
[2011-03-08 12:57:35 - HelloWorld] ------------------------------
[2011-03-08 12:57:35 - HelloWorld] Android Launch!
[2011-03-08 12:57:35 - HelloWorld] adb is running normally.
[2011-03-08 12:57:35 - HelloWorld] Performing com.oreilly.helloworld.HelloWorldActivity activity launch
[2011-03-08 12:57:35 - HelloWorld] Automatic Target Mode: Preferred AVD 'MY_AVD' is not available. Launching new emulator.
[2011-03-08 12:57:35 - HelloWorld] Launching a new emulator with Virtual Device 'MY_AVD'
[2011-03-08 12:57:39 - HelloWorld] New emulator found: emulator-5554
[2011-03-08 12:57:39 - HelloWorld] Waiting for HOME ('android.process.acore') to be launched...
[2011-03-08 13:00:14 - HelloWorld] WARNING: Application does not specify an API level requirement!
[2011-03-08 13:00:14 - HelloWorld] Device API version is 11 (Android 3.0)
[2011-03-08 13:00:14 - HelloWorld] HOME is up on device 'emulator-5554'
[2011-03-08 13:00:14 - HelloWorld] Uploading HelloWorld.apk onto device 'emulator-5554'
[2011-03-08 13:00:14 - HelloWorld] Installing HelloWorld.apk...
[2011-03-08 13:02:22 - HelloWorld] Failed to install HelloWorld.apk on device 'emulator-5554!
[2011-03-08 13:02:22 - HelloWorld] (null)
[2011-03-08 13:02:23 - HelloWorld] Launch canceled!
如何解决这些问题以便我的应用程序能够启动?
【问题讨论】:
尝试使用adb手动安装apk。 类似问题(同样的错误信息):***.com/questions/3821699/android-hello-world 【参考方案1】:尝试更改 ADB 连接超时。我认为它默认为 5000 毫秒,我将其更改为 10000 毫秒以解决该问题。如果你在 Eclipse 中,你可以通过 Window -> Preferences 来做到这一点,然后它在 Android 下的 DDMS 中。
如此处所述:Android error: Failed to install *.apk on device *: timeout
【讨论】:
它不会解决我的问题:(【参考方案2】:重启设备对我有用。使用 adb install 可以安装 apk,但是在 eclipse 中调试时每次启动应用程序时都使用它很烦人。
【讨论】:
【参考方案3】:我时常会遇到这种情况,但这通常与模拟器启动缓慢有关。重试不在重试之间关闭模拟器。如果仍然失败,请发布客户端日志(logcat)。
另一个原因可能是在后台运行的幽灵 Eclipse 进程仍然绑定到调试端口。关闭 Eclipse,查看进程列表,看看是否还有 Eclipse 正在运行。将它们全部杀死并重新启动 Eclipse。
【讨论】:
【参考方案4】:如果您在 Android 模拟器上运行它,您不想在运行之间关闭它。系统将尝试加载应用程序,并且由于模拟器启动需要多长时间而超时。您可以通过转到 Window -> Preferences -> Android -> DDMS 并增加 ADB 超时时间(默认为 5000 毫秒)来增加 ADB 时间,或者让模拟器保持打开状态并在模拟器启动并运行后运行它来解决此问题.
我个人建议让模拟器保持打开状态,因为它在运行后会相对快速地加载应用程序,但这可能会消耗系统。做任何对你更有帮助的事情。
【讨论】:
【参考方案5】:您可能需要考虑的其他事情是通过擦除您的用户数据来硬重置您的模拟器。
为了做到这一点,你: - 在包资源管理器中右键单击您的项目名称 - 转到“运行方式”然后“运行配置” - 在“运行配置”窗口中单击“目标”选项卡 - 然后勾选您选择的模拟器的名称 - 勾选“擦除用户数据”,点击应用
下次启动模拟器时,它应该会提示您询问是否真的要擦除数据。点击是,希望它可以帮助您安装应用程序。
【讨论】:
【参考方案6】:我遇到了同样的问题,然后通过将 Android SDK 文件夹 tools 和 platform-tools 的路径添加到 system PATH 变量 来解决它重启设备。
【讨论】:
【参考方案7】:@Bolton 的回答对我有用。 一些细节...
几周前我拿到了手机。我立即尝试了 HelloAndroid 示例应用程序(在安装了 req'd 软件等之后)。该应用程序可以在模拟器和手机上运行——马上!
在那之后不久,我将手机植根,但没有刷新任何 rom 或内核。直到昨天我才在模拟器上进行试验(编写一个简单的记事本应用程序)。当我尝试在手机上调试应用程序时,我观察到了以下情况:
Eclipse 控制台报告“...无法在设备上安装...(null)”消息。但是
HelloAndroid 应用确实被推送到手机上! (它出现在应用程序抽屉中,我能够启动它。)
它根本无法从 Eclipse 运行在手机上启动。
我昨晚在这里和其他地方搜索(包括这个线程)没有运气。最后,我重新启动了我的手机——我从未尝试过(doh!)因为我认为这不会有什么不同——然后应用程序从 Eclipse 启动!
还不知道是什么原因,等我弄明白了再回来。
【讨论】:
【参考方案8】:我有同样的问题:无法在设备'xxxxxxxxx'上安装test.apk:null
我尝试重启手机,重启 Eclipse,什么都没有!
然后,我从 Eclipse 工作区中删除该项目,然后再次导入。 (文件、导入、现有项目到工作区)。我不知道到底是什么问题,但现在工作正常。
【讨论】:
【参考方案9】:我遇到了同样的问题并尝试增加 ADB 连接超时...没有用。
我尝试将“android-sdk/tools”和“android-sdk/platform-tools”放在PATH变量中......没有效果。
我尝试重新启动 Eclipse 并让 AVD 在运行前启动。同样的问题。
有时我可以通过关闭和重新打开项目,然后清理和重建项目来使其工作。它并不总是有效,但由于我上次没有重新启动 AVD,我认为问题出在 Eclipse 本身。您可以尝试删除项目“bin”目录中的所有内容,然后清理和重建。可能是一些临时或中间文件没有被正确删除。我必须做的另一件事是删除我的 AVD。它没有正确删除,我不得不进去手动删除 AVD 的子文件夹,然后重新创建 AVD。这些的一些组合可以暂时解决问题。希望对您有所帮助。
【讨论】:
【参考方案10】:如果拔下设备并重新插入不起作用,请尝试将上传超时时间增加到非常大的值,例如 20000 毫秒。它位于 Window → Preferences → Android → DDMS → "ADB connection time out (ms)"。
【讨论】:
【参考方案11】:只需尝试以下步骤,
-
在开始运行应用程序之前转到主屏幕。
无需每次都卸载。只需正确卸载您的应用程序一次。
进入设置 -> 管理应用程序 -> 点击菜单 -> 过滤器 -> 第三方应用程序。 检查您的应用程序是否存在。
修改应用程序后,只需保存即可。右键单击您的项目并选择“作为 Android 应用程序运行”。 注意:再次强调,在运行应用程序之前,请检查您的模拟器是否显示主屏幕。进入主屏幕:从eclipse进入菜单:window->android virtual device->start
【讨论】:
【参考方案12】:就我而言,我也遇到了同样的问题,它有助于增加 SD 卷和最大 VM 应用程序堆大小。 (Android SDK 和 AVD 管理器 - 虚拟设备 - 编辑) 有趣的是,SD 和堆返回到之前的值也是可以的。这意味着,仿真器参数的任何更改及其重建就足够了。 (简单重启无济于事)
【讨论】:
【参考方案13】:我已经导入了一个现有项目并开始运行... 我也面临同样的问题(警告:应用程序未指定 API 设备 API 版本为 11 (Android 3.0))。在我所有尝试解决该问题后都失败了,我只是在其他包下创建了新项目以保持相同的名称,并手动复制了以前导入项目的所有文件内容并再次开始运行......令我惊讶的是它在我的第一次成功执行尝试...我认为问题是由于导入时版本缺乏兼容性...我希望它对少数人有帮助...
【讨论】:
【参考方案14】:我一次又一次地面临这个问题。在很多论坛上转了一圈,但找不到一个合乎逻辑的解决方案。
我曾经收到此错误消息, . . . 将 test.apk 上传到设备“emulator-5554” 无法在设备“emulator-5554”上安装 test.apk:超时 发射已取消!
此错误是在模拟器启动和应用程序部署需要相当长的时间并且在此之前模拟器超时时引发的。
解决此问题的一个简单方法是在出现此问题时保持模拟器打开,*只需再次运行应用程序即可。这只会将应用程序部署到已经启动的模拟器 *。此运行期间消耗的时间不多,因为应用程序部署期间的大部分时间是因为模拟器启动缓慢。
希望这会有所帮助!
【讨论】:
【参考方案15】:季超说的对我总是有用的。
如果我使用 Eclipse,通常当我看到此错误时,我会关闭并重新打开程序。然后,我将从目标手机中卸载应用程序。这有时会解决问题,但并非总是如此。
接下来我将打开命令终端并进入 android-sdk 然后运行:
./adb install <AppName>.apk
这与通过 Eclipse 运行的功能相同,但它会给您一个错误消息。
(10 次中有 9 次只是说“INSTALL_ALREADY_EXISTS”,然后我再次从目标手机上卸载应用程序,然后运行 adb,我工作正常。)
【讨论】:
【参考方案16】:我遇到了同样的错误。
即使在显示 "Failed to install *.apk on device-emulator-5554"
之后,我也只是让 AVD 继续运行。之后它会自动加载项目。
我认为该错误是由于 AVD 启动缓慢所致。
【讨论】:
【参考方案17】:我的设备遇到了同样的错误。 首先确保您没有将调试 apk 上传到已安装相同 apk 但使用发布证书签名的设备。在这种情况下,您必须先从设备上卸载它。 在其他情况下,我的解决方案是重新启动所有内容:
-
重启设备
pskill emulator-arm.exe
pskill eclipse.exe
pskill adb.exe
之后设备、adb和eclipse都在工作了。
【讨论】:
【参考方案18】:当它显示红色文字 - 错误时,不要关闭模拟器 - 保持原样并再次运行应用程序。
【讨论】:
【参考方案19】:重新启动 ADT 或尝试更改 ADB 连接超时。我认为它默认为 5000 毫秒,我将其更改为 10000 毫秒以解决该问题。如果你在 Eclipse 中,你可以通过 Window -> Preferences 来做到这一点,然后它在 Android 下的 DDMS 中。
【讨论】:
【参考方案20】:好的,这种方法只有在您连接到真实设备而不是 Android 模拟器时才有用。
当设备的 USB 调试模式出现问题时,重置 DDMS ADB 连接超时无法很好地用于真实设备。
因此,禁用和重新启用 USB 调试模式似乎可以通过在设备上创建新的 ADB 会话来解决问题。
【讨论】:
【参考方案21】:去设置-安全验证应用程序如果选中,更改为未选中状态,然后更改为选中状态
【讨论】:
【参考方案22】:1) 从此目录 project/build/outputs/apk 中删除 apk
2) 如果你使用 genymotion 模拟器重启 genymotion
3)制作项目并重建项目
4) 再次运行
【讨论】:
以上是关于Android 无法在设备上安装 HelloWorld.apk (null) 错误的主要内容,如果未能解决你的问题,请参考以下文章
升级到 android 3.6.1 apk 后无法在设备上安装
无法确定 Android 设备上是不是安装了 Google Play 商店