为啥“adb install (my APK)”会触发“找不到服务:包”?
Posted
技术标签:
【中文标题】为啥“adb install (my APK)”会触发“找不到服务:包”?【英文标题】:Why is "adb install (my APK)" triggering "can't find service: package"?为什么“adb install (my APK)”会触发“找不到服务:包”? 【发布时间】:2017-08-09 15:55:20 【问题描述】:我正在启动一个 android 虚拟设备,但我得到了:
Starting emulator for AVD 'avd.1'
pulseaudio: pa_context_connect() failed
pulseaudio: Reason: Connection refused
pulseaudio: Failed to initialize PA contextaudio: Could not init `pa' audio driver
emulator: Listening for console connections on port: 5558
emulator: Serial number of this emulator (for ADB): emulator-5558
模拟器即将启动,但我没有看到上面的图标,所以我想知道上面列出的错误是否是“showstoppers”?然后当我尝试adb install bin/my.apk
时,我收到错误Can't find service: package
。所以看起来 adb 没有与 AVD 正确通信。但是,adb devices
确实显示了上面列出的 emulator-5558。任何建议都会很有帮助。
【问题讨论】:
你能解决这个问题吗? 不 - 我已经放弃了让模拟器运行,现在正在开发一个实际设备并使用 adb 查看日志。可以选择使用模拟器会很好,所以如果有人对为什么(1)模拟设备会在屏幕上显示没有图标以及(2)为什么我会得到“找不到”有任何想法尝试“adb install”时服务”味精,我欢迎他们。 TIA。 我在删除并重新下载图像后创建了一个具有类似配置的新模拟器,这次它工作了。我的猜测是旧的模拟器配置/图像中丢失、配置错误或损坏。 谢谢阿达什。我会试试的。 在我的情况下,错误似乎是由于 ARM 模拟器太慢,以至于在我执行adb install xxx.apk
命令之前没有时间加载所有服务。当我第二次尝试该命令时,我收到另一个错误:adb: failed to install xxx.apk:
没有任何信息,但我注意到该应用程序已正确安装。你可以通过输入命令adb shell service list
来查看是否加载了“包”服务。
【参考方案1】:
您在提出问题时基本上已经回答了自己的问题。问题的根源是模拟器设置不正确(系统 UI 未加载证明)。当Android无法正常启动时,很可能无法启动某些系统服务(本例为package
服务)。
解决方案是重新创建模拟器,可能使用不同的系统映像(以防您一直使用的系统映像已损坏)。如果您使用的是官方镜像,请尝试切换 API 级别,或从支持 GMS 的模拟器镜像切换到非 GMS 镜像(反之亦然)。
【讨论】:
感谢您提供的 blufenix。我再看一张图。 在之前保存状态的模拟器中使用-wipe-data
或-no-snapshot
标志时也会发生这种情况【参考方案2】:
别忘了开启usb调试模式和开发者选项中同意数据文件传输,对我来说解决了这个问题,希望对你有帮助
【讨论】:
【参考方案3】:在调试时关闭模拟器后也发生在我身上。是的,不是最好的主意...
对我来说解决方案是:
-
单击工具 > AVD 管理器。
在您的(虚拟)设备上单击新窗口右侧底部的箭头。
点击“立即冷启动”。
【讨论】:
以上是关于为啥“adb install (my APK)”会触发“找不到服务:包”?的主要内容,如果未能解决你的问题,请参考以下文章