在Genymotion测试时,应用程序无响应。

3
我正在使用Genymotion Android模拟器测试我的应用程序(需要Google Play服务)。但是由于Genymotion不支持该功能,我遵循了这里的说明: 如何在没有拖放支持的Genymotion VM中安装Google Play服务? 每当我尝试在Genymotion上启动此应用程序时,会出现对话框,提示“应用程序未响应。是否要关闭它?”自从我最初开发此应用程序以来,我一直在使用Galaxy Nexus-4.2.2的Genymotion,并且一切都很完美。我不知道为什么它突然停止工作了。这个问题只会在我在Genymotion上测试我的应用程序时发生,真实设备和Eclipse模拟器没有问题。日志中也没有错误信息。模拟器可以连接到互联网,所有检查都通过了,我的代码也没有问题,即使我删除了Genymotion AVD,创建并测试新的AVD也无法解决问题。
请告诉我如何解决这个问题?

我认为Genymotion没有预装PlayServices。 - Ayoub
1
是的。但我不知何故成功了。你可以在这里阅读。https://dev59.com/eGIj5IYBdhLWcg3wkl2U - EasterKim
你是否将Play服务zip包刷入你的Genymotion模拟器? - IgorGanapolsky
2个回答

2
当您在主线程上执行长时间任务时,将会出现此消息。这被称为ANR(应用程序无响应)。您应该使用调试和分析工具来查看发生了什么。
将断点添加到您的代码中,并在设备上使用Bedug(而不是Run)运行您的应用程序。 您也可以通过DDMS分析您的应用程序执行情况,以确定在UI线程上运行并需要超过5秒钟才能处理的代码部分。 您可以在这里找到有关Tracedump的更多信息,它是Android上的方法分析工具。
此外,它可能不是来自您的应用程序,而是由您调用的第三方元素引起的。 例如,我知道Google应用程序中的新“照片”应用程序,在您选择尚未下载的云中的图片时可能会导致ANR。
如果它来自第三方应用程序,则我不知道如何解决此问题。

就像你所说的,问题不是来自我的应用程序,也不是ANR,因为当我在真实设备和Eclipse模拟器上测试时,应用程序运行良好。因此,问题必须来自Genymotion。 - EasterKim
好的。我认为我们没有足够的信息来帮助您解决问题。您应该通过添加确切的操作情况、屏幕上看到的内容,以及可能在日志中出现的信息等来编辑您的帖子。我们不知道您的问题是在应用程序启动时还是在执行特定操作时出现的,也没有任何明确的错误、日志或指示表明问题来自哪里。也不知道谷歌应用程序如何涉及您的问题。因此,请添加更多信息,我们将能够为您提供更相关的支持。 - eyal-lezmy
2
Bedug听起来比debug更棒。 - Fadils

0

Genymotion模拟器不带有集成的Google Play服务,因此建议您在尝试访问服务之前检查设备上是否存在该服务,以免在尝试访问服务时出现冻结。此外,您可以直接在手机上使用adb进行调试,或者使用adb自带的模拟器(我知道adb上的模拟器很慢,但仍然可以使用)。


我一直在使用Genymotion和Galaxy Nexus-4.2.2模拟器进行应用程序开发。一切都很完美。但不知道为什么突然就无法使用了。由于我无法在自己的模拟器上看到谷歌地图,因此无法使用adb自己的模拟器。感谢您的回答 :) - EasterKim
我了解adb模拟器的问题,我也使用Genymotion。也许您在代码中更改了某些内容,导致与互联网的连接停止工作。顺便说一句,如果答案足够有用,请使用左侧的复选框将其标记为答案,谢谢! - nunoh123
我想解决我的Genymotion问题,但我仍在等待一个好的答案。 - EasterKim
看,你已经确认模拟器可以通过在模拟器上打开浏览器来访问互联网,所以我们知道模拟器有互联网。如果你的应用程序无法以某种方式访问互联网,那么问题必须出在你的代码中。如果你不展示你的代码或至少其中一部分,我和其他人都无法提供帮助。你没有提供足够的信息让我们帮助你。 - nunoh123

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接