2

だから私は GCM Demo アプリケーションのチュートリアルに従いました。http://developer.android.com/guide/google/gcm/demo.html

私はそれをjettyサーバーで動作させました。しかし、今はJavaサーバー用のアプリエンジンをやりたいのですが、うまくいきません。jetty サーバーで動作していたため、クライアントが正常に構成されていると確信しています。

ApiKeyInitializer.java で、「replace_this_text_by_your_Simple_API_Access_key」を自分のアクセス キーに置き換えました。

appengine sdk を単純な場所 D:\appenginesdk にコピーしました。cmd で実行するよりも:

ant -Dsdk.dir=D:\appenginesdk runserver -Dserver.host=192.168.0.101

192.168.0.101 は私のローカル IP です。

D:\gmcserverapp>ant -Dsdk.dir=D:\appenginesdk runserver -Dserver.host=192.168.0.101
Buildfile: D:\gmcserverapp\build.xml

init:

copyjars:

compile:
[javac] Compiling 1 source file to D:\gmcserverapp\WebContent\WEB-INF\classes
[javac]
[javac]           WARNING
[javac]
[javac] The -source switch defaults to 1.7 in JDK 1.7.
[javac] If you specify -target 1.5 you now must also specify -source 1.5.
[javac] Ant will implicitly add -source 1.5 for you.  Please change your build file.
[javac] warning: [options] bootstrap class path not set in conjunction with-source 1.5
[javac] 1 warning
datanucleusenhance:
[enhance] DataNucleus Enhancer (version 1.1.4) : Enhancement of classes
[enhance] DataNucleus Enhancer completed with success for 0 classes. Timings :input=156 ms, enhance=0 ms, total=156 ms. Consult the log for full details
[enhance] DataNucleus Enhancer completed and no classes were enhanced. Consult the log for full details

runserver:
 [java] aug 21, 2012 1:17:55 PM com.google.apphosting.utils.jetty.JettyLogger info
 [java] INFO: Logging to JettyLogger(null) via com.google.apphosting.utils.jetty.JettyLogger
 [java] aug 21, 2012 1:17:55 PM com.google.apphosting.utils.config.AppEngineWebXmlReader readAppEngineWebXml
 [java] INFO: Successfully processed D:\gmcserverapp\WebContent\WEB-INF/appengine-web.xml
 [java] aug 21, 2012 1:17:55 PM com.google.apphosting.utils.config.AbstractConfigXmlReader readConfigXml
 [java] INFO: Successfully processed D:\gmcserverapp\WebContent\WEB-INF/web.xml
 [java] aug 21, 2012 3:17:57 PM com.google.appengine.tools.development.DevAppServerImpl start
 [java] INFO: The server is running at http://192.168.0.101:8080/
 [java] aug 21, 2012 3:17:57 PM com.google.appengine.tools.development.DevAppServerImpl start
 [java] INFO: The admin console is running at http://192.168.0.101:8080/_ah/admin

これは私がエミュレーターで得たものです

Google APIを使用したエミュレータAndroid 4.1

そしてブラウザでは、デバイスが登録されていません。

私に何ができる?

私は何を間違っていますか?

私は多くのチュートリアルを行いましたが、何もうまくいきませんでした。私は必死になっています。

編集 2012-08-21 15:57:

いくつかのエラーを解決してくれた Yahor10 に感謝します。私は今、このエラーが発生します:

 [java] aug 21, 2012 1:52:40 PM com.google.appengine.tools.development.LocalResourceFileServlet doGet
 [java] WARNING: No file found for: //register

編集 2012-08-21 16:18:

 //   String serverUrl = SERVER_URL + "/register";
 String serverUrl = SERVER_URL;

Android アプリの serverUtilities.java の server_url を変更しました。これにより、エミュレーターは接続されていると言いました。しかし、192.168.0.101:8080 を更新すると、まだデバイスがありません.....

4

2 に答える 2

1

私が持っていた server_url が間違っていることがわかるまで、私は GCM デモで同様の問題を抱えていました。例とチュートリアルが示唆するように、「http://< my_ip_address>:8080/gcm-demo」に設定しました。さらに、アプリがサーバーに接続しようとするたびに ant がログを提供していたので、URL が間違っているとは思いませんでした。

しかし、URL の末尾から「/gcm-demo」を取り出しただけで、魅力的に機能します。

これがあなたの頭痛の種だったことを願っています。

-ムドレスデン

于 2013-01-02T13:55:14.630 に答える
0

サーバーのbuild.xmlに1.7 Javaコードを設定します

<target name="compile" depends="init" description="Compile the Java classes.">
    <javac destdir="${classes}" debug="true" srcdir="${src}" target="1.7"
      includeantruntime="false">
      <classpath refid="compile.classpath"/>
    </javac>
  </target>

App Engine SDK の正しいディレクトリの場所を設定し、クライアント側でコンピュータの正しい IP アドレスを書き込みます

于 2012-08-21T13:35:03.753 に答える