0

そのため、Google のチュートリアルに従って、Android エミュレーターで GCM デモ アプリをセットアップしました (ここにあるもの: http://developer.android.com/guide/google/gcm/demo.html )。サーバー側が機能しました-「デバイスが登録されていません!」と表示するTomcatサーバーがあります。GCM デモ ページで。ターゲットの Google API を使用して Android エミュレーターにクライアント側アプリをインストールしました (4.1 をターゲットにしたもので GCM を動作させようとすると、アプリケーションを実行するたびに「残念ながら、GCM デモが停止しました」というメッセージが表示されます) - アプリケーションが実行されます。成功しましたが、サーバーに接続してデバイスを登録することはできません (5 回すべて試行されます)。SERVER_URL、SENDER_ID、および api.key を正しい値に編集しました (I' チュートリアルのすべてのステップに従いました) - ここで何が欠けていますか? エミュレーターのブラウザーも正常に動作しているようです。

編集: デモの URL を修正 - nickl

4

4 に答える 4

7

Tomcat サーバーはどこで実行されていますか?また、Android アプリで指定した SERVER_URL は何ですか? http://localhost:8080Tomcatがローカルで実行されていたため、そのデモを試したときに問題が発生しましたが、エミュレーターには「仮想ルーター」のようなものがあるため、Androidアプリからだけを使用してTomcatサーバーにアクセスできないことを覚えておいてください。Tomcat サーバーを実行しているマシンの IP を使用する必要があるため、次のようになります。http://[tomcat-machine's ip]:8080/gcm-demo

于 2012-07-10T18:11:15.610 に答える
2

私はまったく同じ問題を抱えていました。自宅のネットワーク上でファイルを作成したことに気付き、職場のネットワークにいるときにファイルをコンパイルしようとしました。これにより、コンピューターのIPが変更されました。CommonUtilities.java ファイルで SERVER_URL を新しい IP に変更した後、コードを再コンパイルするのを忘れていました。

于 2012-08-10T21:31:24.817 に答える
2

Android エミュレーターが実行されているコンピューターのローカルホストにアクセスしようとする場合は、10.0.2.2 を使用する必要があります。詳細については、http://developer.android.com/tools/devices/emulator.html を参照してください。 #networkaddresses

于 2012-08-22T12:45:21.717 に答える
2

この問題は多くのソースから発生する可能性があります。私の場合は、間違ったサーバー URL を使用したためです。.../gcm-demo/home ではなくhttp://yourserveraddress.com/gcm-demoで停止する必要があります。

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

また、WAR ファイルのビルドに使用した API キーが、appsengine 用ではなく Web サーバー用であることを確認しましたか (Google コンソール API を介して登録すると 2 つ生成されます)。

于 2012-07-14T03:30:43.597 に答える