尝试设置GCM演示应用程序 - 设备注册不起作用

时间:2012-07-10 17:36:45

标签: android registration android-c2dm google-cloud-messaging

所以我一直在关注Google的教程,在Android模拟器上设置GCM演示应用程序(http://developer.android.com/guide/google/gcm/demo.html)。我让服务器端工作 - 我有一个tomcat服务器显示“没有设备注册!”在GCM演示页面上。我在带有目标Google API的Android模拟器上安装了客户端应用程序(试图让GCM在一个目标4.1上运行,只是吐出“不幸的是,GCM Demo已停止”每次运行应用程序时) - 应用程序运行成功,但它无法连接到服务器注册设备(它经历了所有5次尝试)。我确实将SERVER_URL,SENDER_ID和api.key编辑为正确的值(我已经按照教程的每一步) - 我在这里缺少什么?模拟器上的浏览器似乎也能正常工作。

编辑:修复了网址演示 - nickl

4 个答案:

答案 0 :(得分:7)

您的tomcat服务器在哪里运行,以及您在Android应用中提供的SERVER_URL是什么?当我尝试该演示时,我遇到了问题,因为我的tomcat是在本地运行的,但请记住,仿真器就像一个“虚拟路由器”,所以你不能只使用你的Android应用程序中的http://localhost:8080访问你的tomcat服务器。您必须使用运行Tomcat服务器的计算机的IP,因此它就像http://[tomcat-machine's ip]:8080/gcm-demo

答案 1 :(得分:2)

这个问题可以来自很多方面,因为我使用了错误的服务器URL,你应该停在http://yourserveraddress.com/gcm-demo而不是...... / gcm-demo / home

SERVER_URL = "http://yourserveraddress.com/gcm-demo"

另外,您是否检查过用于构建WAR文件的API密钥是用于Web服务器,而不是用于appsengine(通过Google控制台API注册时会生成2个)?

答案 2 :(得分:2)

我遇到了完全相同的问题。我意识到我已经在家里的网络上构建了文件,并且当我在工作网络中时尝试编译文件。这改变了我的电脑的IP。我忘记在将SERVER_URL更改为CommonUtilities.java文件中的新ip后重新编译我的代码。

答案 3 :(得分:2)

如果您尝试访问运行Android模拟器的计算机的本地主机,则必须使用10.0.2.2,您可以在此处阅读更多相关信息:http://developer.android.com/tools/devices/emulator.html#networkaddresses