java - App Engine 连接的 Android 项目 : Endpoints server Failed

标签 java android google-app-engine

我是 Android 编程的新手,我正在尝试执行一个将图像发送到服务器并返回结果的应用程序。出于这个原因,我正在关注 App Engine Connected Android 上的谷歌教程 2。 问题出现在运行应用程序的电话端时,因为模拟器没有启动,如果我用真实设备尝试它,它会说“端点注册失败”,结果的屏幕截图图像在链接 1 中.

我已将 LOCAL_ANDROID_RUN 设置为 true,并且还插入了相应的项目编号和 api_keys。 不知道哪里出了问题,控制台和logcat输出如下:

运行-AppEngine 控制台:

feb. 27, 2013 11:36:51 AM com.google.apphosting.utils.config.EarHelper logNotAnEar
INFO: Directory '/Users/JL/Documents/workspace/p27_2-AppEngine/war' is not an EAR directory. File /Users/JL/Documents/workspace/p27_2-AppEngine/war/appengine-application.xmlappengine-application.xml not detected.
feb. 27, 2013 11:36:51 AM com.google.apphosting.utils.config.EarHelper logNotAnEar
INFO: Directory '/Users/JL/Documents/workspace/p27_2-AppEngine/war' is not an EAR directory. File /Users/JL/Documents/workspace/p27_2-AppEngine/war/appengine-application.xmlappengine-application.xml not detected.
feb. 27, 2013 11:36:51 AM com.google.apphosting.utils.config.EarHelper logNotAnEar
INFO: Directory '/Users/JL/Documents/workspace/p27_2-AppEngine/war' is not an EAR directory. File /Users/JL/Documents/workspace/p27_2-AppEngine/war/appengine-application.xmlappengine-application.xml not detected.
feb. 27, 2013 11:36:51 AM com.google.apphosting.utils.config.EarHelper logNotAnEar
INFO: Directory '/Users/JL/Documents/workspace/p27_2-AppEngine/war' is not an EAR directory. File /Users/JL/Documents/workspace/p27_2-AppEngine/war/appengine-application.xmlappengine-application.xml not detected.
feb. 27, 2013 11:36:51 AM com.google.apphosting.utils.config.AppEngineWebXmlReader readAppEngineWebXml
INFO: Successfully processed /Users/JL/Documents/workspace/p27_2-AppEngine/war/WEB-INF/appengine-web.xml
feb. 27, 2013 11:36:51 AM com.google.apphosting.utils.config.AbstractConfigXmlReader readConfigXml
INFO: Successfully processed /Users/JL/Documents/workspace/p27_2-AppEngine/war/WEB-INF/web.xml
feb. 27, 2013 11:36:51 AM com.google.appengine.tools.development.SystemPropertiesManager setSystemProperties
INFO: Overwriting system property key 'java.util.logging.config.file', value '/Applications/eclipse/plugins/com.google.appengine.eclipse.sdkbundle_1.7.5/appengine-java-sdk-1.7.5/config/sdk/logging.properties' with value 'WEB-INF/logging.properties' from '/Users/JL/Documents/workspace/p27_2-AppEngine/war/WEB-INF/appengine-web.xml'
java.net.BindException: Address already in use
    at sun.nio.ch.Net.bind0(Native Method)
    at sun.nio.ch.Net.bind(Net.java:344)
    at sun.nio.ch.Net.bind(Net.java:336)
    at sun.nio.ch.ServerSocketChannelImpl.bind(ServerSocketChannelImpl.java:199)
    at sun.nio.ch.ServerSocketAdaptor.bind(ServerSocketAdaptor.java:74)
    at org.mortbay.jetty.nio.SelectChannelConnector.open(SelectChannelConnector.java:216)
    at com.google.appengine.tools.development.JettyContainerService.connectContainer(JettyContainerService.java:189)
    at com.google.appengine.tools.development.AbstractContainerService.createConnection(AbstractContainerService.java:243)
    at com.google.appengine.tools.development.AbstractServer.createConnection(AbstractServer.java:71)
    at com.google.appengine.tools.development.DevAppServerImpl$Servers.createConnections(DevAppServerImpl.java:445)
    at com.google.appengine.tools.development.DevAppServerImpl.start(DevAppServerImpl.java:181)
    at com.google.appengine.tools.development.DevAppServerMain$StartAction.apply(DevAppServerMain.java:333)
    at com.google.appengine.tools.util.Parser$ParseResult.applyArgs(Parser.java:48)
    at com.google.appengine.tools.development.DevAppServerMain.<init>(DevAppServerMain.java:269)
    at com.google.appengine.tools.development.DevAppServerMain.main(DevAppServerMain.java:245)

在真实设备上运行手机端 控制台:

[2013-02-27 11:31:53 - p27_2] ------------------------------
[2013-02-27 11:31:53 - p27_2] Android Launch!
[2013-02-27 11:31:53 - p27_2] adb is running normally.
[2013-02-27 11:31:53 - p27_2] Performing com.p27_2.MainActivity activity launch
[2013-02-27 11:31:56 - p27_2] Application already deployed. No need to reinstall.
[2013-02-27 11:31:56 - p27_2] Starting activity com.p27_2.MainActivity on device 31315808870300EC
[2013-02-27 11:31:56 - p27_2] ActivityManager: Starting: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] cmp=com.p27_2/.MainActivity }
[2013-02-27 11:31:56 - p27_2] ActivityManager: Warning: Activity not started, its current task has been brought to the front
[2013-02-27 11:35:21 - p27_2] ------------------------------
[2013-02-27 11:35:21 - p27_2] Android Launch!
[2013-02-27 11:35:21 - p27_2] adb is running normally.
[2013-02-27 11:35:21 - p27_2] Performing com.p27_2.MainActivity activity launch
[2013-02-27 11:35:24 - p27_2] Application already deployed. No need to reinstall.
[2013-02-27 11:35:24 - p27_2] Starting activity com.p27_2.MainActivity on device 31315808870300EC
[2013-02-27 11:35:24 - p27_2] ActivityManager: Starting: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] cmp=com.p27_2/.MainActivity }
[2013-02-27 11:35:24 - p27_2] ActivityManager: Warning: Activity not started, its current task has been brought to the front
[2013-02-27 11:37:06 - p27_2] ------------------------------
[2013-02-27 11:37:06 - p27_2] Android Launch!
[2013-02-27 11:37:06 - p27_2] adb is running normally.
[2013-02-27 11:37:06 - p27_2] Performing com.p27_2.MainActivity activity launch
[2013-02-27 11:37:09 - p27_2] Application already deployed. No need to reinstall.
[2013-02-27 11:37:09 - p27_2] Starting activity com.p27_2.MainActivity on device 31315808870300EC
[2013-02-27 11:37:10 - p27_2] ActivityManager: Starting: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] cmp=com.p27_2/.MainActivity }
[2013-02-27 11:37:10 - p27_2] ActivityManager: Warning: Activity not started, its current task has been brought to the front

日志:

02-27 11:36:58.968: D/GCMRegistrar(1684): resetting backoff for com.p27_2
02-27 11:36:58.968: V/GCMRegistrar(1684): Registering app com.p27_2 of senders 658829472559
02-27 11:36:59.296: V/GCMBroadcastReceiver(1684): onReceive: com.google.android.c2dm.intent.REGISTRATION
02-27 11:36:59.296: V/GCMBroadcastReceiver(1684): GCM IntentService class: com.p27_2.GCMIntentService
02-27 11:36:59.296: V/GCMBaseIntentService(1684): Acquiring wakelock
02-27 11:36:59.316: W/AbstractGoogleClient(1684): Application name is not set. Call Builder#setApplicationName.
02-27 11:36:59.328: D/GCMBaseIntentService(1684): handleRegistration: registrationId = APA91bEN9AXnKP8jsVmt3fNj1ziAegl04m4laECFqkzFxbuk2dfdvK3ePCVH_3JOjKehC0EpPgkkIp8t-OJtxTe_E12lw9atzEcHVpsyr_Qdi4UYxQgsW2w3uZQRnbj8Aho_IUjAWKub, error = null, unregistered = null
02-27 11:36:59.328: D/GCMRegistrar(1684): resetting backoff for com.p27_2
02-27 11:36:59.335: V/GCMRegistrar(1684): Saving regId on app version 1
02-27 11:37:39.511: E/com.p27_2.GCMIntentService(1684): Exception received when attempting to register with server at http://10.0.2.2:8888/_ah/api/
02-27 11:37:39.511: E/com.p27_2.GCMIntentService(1684): java.net.SocketTimeoutException: failed to connect to /10.0.2.2 (port 8888) after 20000ms
02-27 11:37:39.511: E/com.p27_2.GCMIntentService(1684):     at libcore.io.IoBridge.connectErrno(IoBridge.java:159)
02-27 11:37:39.511: E/com.p27_2.GCMIntentService(1684):     at libcore.io.IoBridge.connect(IoBridge.java:112)
02-27 11:37:39.511: E/com.p27_2.GCMIntentService(1684):     at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:192)
02-27 11:37:39.511: E/com.p27_2.GCMIntentService(1684):     at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:459)
02-27 11:37:39.511: E/com.p27_2.GCMIntentService(1684):     at java.net.Socket.connect(Socket.java:842)
02-27 11:37:39.511: E/com.p27_2.GCMIntentService(1684):     at libcore.net.http.HttpConnection.<init>(HttpConnection.java:76)
02-27 11:37:39.511: E/com.p27_2.GCMIntentService(1684):     at libcore.net.http.HttpConnection.<init>(HttpConnection.java:50)
02-27 11:37:39.511: E/com.p27_2.GCMIntentService(1684):     at libcore.net.http.HttpConnection$Address.connect(HttpConnection.java:341)
02-27 11:37:39.511: E/com.p27_2.GCMIntentService(1684):     at libcore.net.http.HttpConnectionPool.get(HttpConnectionPool.java:87)
02-27 11:37:39.511: E/com.p27_2.GCMIntentService(1684):     at libcore.net.http.HttpConnection.connect(HttpConnection.java:128)
02-27 11:37:39.511: E/com.p27_2.GCMIntentService(1684):     at libcore.net.http.HttpEngine.openSocketConnection(HttpEngine.java:315)
02-27 11:37:39.511: E/com.p27_2.GCMIntentService(1684):     at libcore.net.http.HttpEngine.connect(HttpEngine.java:310)
02-27 11:37:39.511: E/com.p27_2.GCMIntentService(1684):     at libcore.net.http.HttpEngine.sendSocketRequest(HttpEngine.java:289)
02-27 11:37:39.511: E/com.p27_2.GCMIntentService(1684):     at libcore.net.http.HttpEngine.sendRequest(HttpEngine.java:239)
02-27 11:37:39.511: E/com.p27_2.GCMIntentService(1684):     at libcore.net.http.HttpURLConnectionImpl.connect(HttpURLConnectionImpl.java:80)
02-27 11:37:39.511: E/com.p27_2.GCMIntentService(1684):     at libcore.net.http.HttpURLConnectionImpl.getOutputStream(HttpURLConnectionImpl.java:188)
02-27 11:37:39.511: E/com.p27_2.GCMIntentService(1684):     at com.google.api.client.http.javanet.NetHttpRequest.execute(NetHttpRequest.java:80)
02-27 11:37:39.511: E/com.p27_2.GCMIntentService(1684):     at com.google.api.client.http.HttpRequest.execute(HttpRequest.java:1009)
02-27 11:37:39.511: E/com.p27_2.GCMIntentService(1684):     at com.google.api.client.googleapis.services.AbstractGoogleClientRequest.executeUnparsed(AbstractGoogleClientRequest.java:407)
02-27 11:37:39.511: E/com.p27_2.GCMIntentService(1684):     at com.google.api.client.googleapis.services.AbstractGoogleClientRequest.executeUnparsed(AbstractGoogleClientRequest.java:340)
02-27 11:37:39.511: E/com.p27_2.GCMIntentService(1684):     at com.google.api.client.googleapis.services.AbstractGoogleClientRequest.execute(AbstractGoogleClientRequest.java:458)
02-27 11:37:39.511: E/com.p27_2.GCMIntentService(1684):     at com.p27_2.GCMIntentService.onRegistered(GCMIntentService.java:169)
02-27 11:37:39.511: E/com.p27_2.GCMIntentService(1684):     at com.google.android.gcm.GCMBaseIntentService.handleRegistration(GCMBaseIntentService.java:251)
02-27 11:37:39.511: E/com.p27_2.GCMIntentService(1684):     at com.google.android.gcm.GCMBaseIntentService.onHandleIntent(GCMBaseIntentService.java:153)
02-27 11:37:39.511: E/com.p27_2.GCMIntentService(1684):     at android.app.IntentService$ServiceHandler.handleMessage(IntentService.java:65)
02-27 11:37:39.511: E/com.p27_2.GCMIntentService(1684):     at android.os.Handler.dispatchMessage(Handler.java:99)
02-27 11:37:39.511: E/com.p27_2.GCMIntentService(1684):     at android.os.Looper.loop(Looper.java:137)
02-27 11:37:39.511: E/com.p27_2.GCMIntentService(1684):     at android.os.HandlerThread.run(HandlerThread.java:60)
02-27 11:37:39.523: V/GCMBaseIntentService(1684): Releasing wakelock
02-27 11:37:39.562: D/dalvikvm(1684): GC_CONCURRENT freed 134K, 7% free 8586K/9159K, paused 18ms+7ms, total 70ms

非常感谢。

最佳答案

  1. 确保 CloudEndPointUtils 类中的常量 LOCAL_ANDROID_RUN 设置为 false,这意味着我们的服务器未在本地设置。
  2. 通过右键单击项目->google->部署到应用引擎,将您的 -AppEngine 项目部署到 google appEngine。
  3. 将部署到 CloudEndPints.java 后显示的 url 添加到变量 LOCAL_APP_ENGINE_SERVER_URL

关于java - App Engine 连接的 Android 项目 : Endpoints server Failed,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15110761/

相关文章:

java - 在 EJB 中注入(inject)数据源

java - Android while !c.isAfterLast() loop not being entered

java - 将 EL 的值存储在 jsp 中

android - 在 Windows 中连接到远程调试器时 React-native 超时

python - 如何使用 Bulkloader 工具将当前日期/时间上传到 App Engine?

java - AppEngine 近似部分字符串匹配算法

google-app-engine - Phantomjs 与 Google App Engine 的集成

java - Jersey 测试一直失败,读取实体时找不到 MessageBodyReader?

java - 如何在 Android 中读取自定义属性

Android密度绘画StrokeWidth计算