0

Google의 튜토리얼에 따라 Android 에뮬레이터 (여기에서 http://developer.android.com/guide/google/gcm/demo.html)에 GCM 데모 앱을 설정했습니다. 서버 쪽에서 작동 중입니다. "등록 된 장치가 없습니다!"라는 Tomcat 서버가 있습니다. GCM 데모 페이지에 있습니다. 타겟 Google API가있는 Android 에뮬레이터에 클라이언트 측 앱을 설치했습니다. (4.1에 타겟팅 된 GCM을 작동 시키려고하면 "불행히도 GCM 데모가 응용 프로그램을 실행할 때마다 중지되었습니다") - 응용 프로그램이 실행됩니다. 성공적으로 서버에 연결할 수는 있지만 장치를 등록하는 데는 서버에 연결할 수 없습니다 (5 회 시도). SERVER_URL, SENDER_ID 및 api.key를 올바른 값으로 편집했습니다 (이 자습서의 모든 단계를 따랐습니다). 여기서 무엇을 놓치고 있습니까? 에뮬레이터의 브라우저도 제대로 작동하는 것으로 보입니다.GCM 데모 애플리케이션 설정 시도 - 기기 등록이 작동하지 않습니다.

편집 : 고정 URL을 시연하기 - nickl

톰캣 서버 실행이, 어떤이 server_url에 당신이 안드로이드 응용 프로그램에서 제공되는
+2

이 유효한 모든 답변은 아무도의 경우 이렇게 그 (것)들은 당신이 저희에게 정보를 더 제공해야 할 것을 도왔다. 어떤 URL에 "No devices registered"가 표시됩니까? 에뮬레이터의 안드로이드 브라우저에서 서버에 액세스 할 수 있습니까? 테스트 결과에서 볼 수있는 결과는 무엇입니까? SERVER_URL과 SENDER_ID를 정확히 어디에서 업데이트 했습니까? 그 값은 무엇입니까? 당신이 공급하는 세부 사항이 적을수록 우리는 어둠 속에서 찔러야합니다. 우리를 도와 드리겠습니다. –

답변

7

? 내 바람둥이가 로컬에서 실행 되었기 때문에 그 데모를 시도했을 때 문제가 있었지만, 에뮬레이터는 말할 필요없이 "가상 라우터"와 같아서 Android 패키지의 http://localhost:8080을 사용하여 Tomcat 서버에 액세스 할 수 없습니다. Tomcat 서버를 실행중인 컴퓨터의 IP를 사용해야합니다. http://[tomcat-machine's ip]:8080/gcm-demo

2

이 문제는 잘못된 소스 URL을 사용했기 때문에 많은 소스에서 비롯 될 수 있습니다. 대신

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

또한 .../GCM-DEMO/가정의 http://yourserveraddress.com/gcm-demo에서, 당신이 WAR 파일을 빌드하는 데 사용되는 API 키는 웹 서버에 대한 것을 확인해야하지 appsengine 위해 (때 레지스터 생성이있다 Google 콘솔 API를 통해)?

2

나는 똑같은 문제가있었습니다. 필자는 집에서 네트워크에 파일을 빌드하고 내가 작업 네트워크에있을 때 파일을 컴파일하려고했습니다. 이것은 내 컴퓨터의 IP를 변경했습니다. CommonUtilities.java 파일에서 SERVER_URL을 새 IP로 변경 한 후 코드를 다시 컴파일하는 것을 잊었습니다.