我是 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
非常感谢。