2

我收到以下错误。该程序应该打印它从在线 wsdl 访问的值。但它不打印任何内容,并且 LogCat 中出现以下错误:

02-12 01:34:50.472: D/ExchangeService(672): Received deviceId from Email app: null
02-12 01:34:50.472: D/ExchangeService(672): !!! deviceId unknown; stopping self and retrying
02-12 01:34:55.544: W/Trace(672): Unexpected value from nativeGetEnabledTags: 0
02-12 01:34:55.544: W/Trace(672): Unexpected value from nativeGetEnabledTags: 0
02-12 01:34:55.544: W/Trace(672): Unexpected value from nativeGetEnabledTags: 0
02-12 01:34:55.544: D/ExchangeService(672): !!! EAS ExchangeService, onStartCommand, startingUp = false, running = false
02-12 01:34:55.564: W/ActivityManager(288): Unable to start service Intent { act=com.android.email.ACCOUNT_INTENT } U=0: not found
02-12 01:34:55.564: D/ExchangeService(672): !!! Email application not found; stopping self
02-12 01:34:55.574: W/Trace(672): Unexpected value from nativeGetEnabledTags: 0
02-12 01:34:55.574: W/Trace(672): Unexpected value from nativeGetEnabledTags: 0
02-12 01:34:55.584: W/ActivityManager(288): Unable to start service Intent { act=com.android.email.ACCOUNT_INTENT } U=0: not found
02-12 01:34:55.584: W/Trace(672): Unexpected value from nativeGetEnabledTags: 0
02-12 01:34:55.594: E/ActivityThread(672): Service com.android.exchange.ExchangeService has leaked ServiceConnection com.android.emailcommon.service.ServiceProxy$ProxyConnection@40d07d98 that was originally bound here
02-12 01:34:55.594: E/ActivityThread(672): android.app.ServiceConnectionLeaked: Service com.android.exchange.ExchangeService has leaked ServiceConnection com.android.emailcommon.service.ServiceProxy$ProxyConnection@40d07d98 that was originally bound here
02-12 01:34:55.594: E/ActivityThread(672):  at android.app.LoadedApk$ServiceDispatcher.<init>(LoadedApk.java:969)
02-12 01:34:55.594: E/ActivityThread(672):  at android.app.LoadedApk.getServiceDispatcher(LoadedApk.java:863)
02-12 01:34:55.594: E/ActivityThread(672):  at android.app.ContextImpl.bindService(ContextImpl.java:1418)
02-12 01:34:55.594: E/ActivityThread(672):  at android.app.ContextImpl.bindService(ContextImpl.java:1407)
02-12 01:34:55.594: E/ActivityThread(672):  at android.content.ContextWrapper.bindService(ContextWrapper.java:473)
02-12 01:34:55.594: E/ActivityThread(672):  at com.android.emailcommon.service.ServiceProxy.setTask(ServiceProxy.java:157)
02-12 01:34:55.594: E/ActivityThread(672):  at com.android.emailcommon.service.ServiceProxy.setTask(ServiceProxy.java:145)
02-12 01:34:55.594: E/ActivityThread(672):  at com.android.emailcommon.service.AccountServiceProxy.getDeviceId(AccountServiceProxy.java:116)
02-12 01:34:55.594: E/ActivityThread(672):  at com.android.exchange.ExchangeService.getDeviceId(ExchangeService.java:1249)
02-12 01:34:55.594: E/ActivityThread(672):  at com.android.exchange.ExchangeService$7.run(ExchangeService.java:1856)
02-12 01:34:55.594: E/ActivityThread(672):  at com.android.emailcommon.utility.Utility$2.doInBackground(Utility.java:551)
02-12 01:34:55.594: E/ActivityThread(672):  at com.android.emailcommon.utility.Utility$2.doInBackground(Utility.java:549)
02-12 01:34:55.594: E/ActivityThread(672):  at android.os.AsyncTask$2.call(AsyncTask.java:287)
02-12 01:34:55.594: E/ActivityThread(672):  at java.util.concurrent.FutureTask.run(FutureTask.java:234)
02-12 01:34:55.594: E/ActivityThread(672):  at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1080)
02-12 01:34:55.594: E/ActivityThread(672):  at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:573)
02-12 01:34:55.594: E/ActivityThread(672):  at java.lang.Thread.run(Thread.java:856)
02-12 01:34:55.684: E/StrictMode(672): null
02-12 01:34:55.684: E/StrictMode(672): android.app.ServiceConnectionLeaked: Service com.android.exchange.ExchangeService has leaked ServiceConnection com.android.emailcommon.service.ServiceProxy$ProxyConnection@40d07d98 that was originally bound here
02-12 01:34:55.684: E/StrictMode(672):  at android.app.LoadedApk$ServiceDispatcher.<init>(LoadedApk.java:969)
02-12 01:34:55.684: E/StrictMode(672):  at android.app.LoadedApk.getServiceDispatcher(LoadedApk.java:863)
02-12 01:34:55.684: E/StrictMode(672):  at android.app.ContextImpl.bindService(ContextImpl.java:1418)
02-12 01:34:55.684: E/StrictMode(672):  at android.app.ContextImpl.bindService(ContextImpl.java:1407)
02-12 01:34:55.684: E/StrictMode(672):  at android.content.ContextWrapper.bindService(ContextWrapper.java:473)
02-12 01:34:55.684: E/StrictMode(672):  at com.android.emailcommon.service.ServiceProxy.setTask(ServiceProxy.java:157)
02-12 01:34:55.684: E/StrictMode(672):  at com.android.emailcommon.service.ServiceProxy.setTask(ServiceProxy.java:145)
02-12 01:34:55.684: E/StrictMode(672):  at com.android.emailcommon.service.AccountServiceProxy.getDeviceId(AccountServiceProxy.java:116)
02-12 01:34:55.684: E/StrictMode(672):  at com.android.exchange.ExchangeService.getDeviceId(ExchangeService.java:1249)
02-12 01:34:55.684: E/StrictMode(672):  at com.android.exchange.ExchangeService$7.run(ExchangeService.java:1856)
02-12 01:34:55.684: E/StrictMode(672):  at com.android.emailcommon.utility.Utility$2.doInBackground(Utility.java:551)
02-12 01:34:55.684: E/StrictMode(672):  at com.android.emailcommon.utility.Utility$2.doInBackground(Utility.java:549)
02-12 01:34:55.684: E/StrictMode(672):  at android.os.AsyncTask$2.call(AsyncTask.java:287)
02-12 01:34:55.684: E/StrictMode(672):  at java.util.concurrent.FutureTask.run(FutureTask.java:234)
02-12 01:34:55.684: E/StrictMode(672):  at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1080)
02-12 01:34:55.684: E/StrictMode(672):  at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:573)
02-12 01:34:55.684: E/StrictMode(672):  at java.lang.Thread.run(Thread.java:856)
02-12 01:34:55.694: W/ActivityManager(288): Unbind failed: could not find connection for android.os.BinderProxy@413a7a10
02-12 01:34:55.714: E/ActivityThread(672): Service com.android.exchange.ExchangeService has leaked ServiceConnection com.android.emailcommon.service.ServiceProxy$ProxyConnection@40d074a0 that was originally bound here
02-12 01:34:55.714: E/ActivityThread(672): android.app.ServiceConnectionLeaked: Service com.android.exchange.ExchangeService has leaked ServiceConnection com.android.emailcommon.service.ServiceProxy$ProxyConnection@40d074a0 that was originally bound here
02-12 01:34:55.714: E/ActivityThread(672):  at android.app.LoadedApk$ServiceDispatcher.<init>(LoadedApk.java:969)
02-12 01:34:55.714: E/ActivityThread(672):  at android.app.LoadedApk.getServiceDispatcher(LoadedApk.java:863)
02-12 01:34:55.714: E/ActivityThread(672):  at android.app.ContextImpl.bindService(ContextImpl.java:1418)
02-12 01:34:55.714: E/ActivityThread(672):  at android.app.ContextImpl.bindService(ContextImpl.java:1407)
02-12 01:34:55.714: E/ActivityThread(672):  at android.content.ContextWrapper.bindService(ContextWrapper.java:473)
02-12 01:34:55.714: E/ActivityThread(672):  at com.android.emailcommon.service.ServiceProxy.setTask(ServiceProxy.java:157)
02-12 01:34:55.714: E/ActivityThread(672):  at com.android.emailcommon.service.ServiceProxy.setTask(ServiceProxy.java:145)
02-12 01:34:55.714: E/ActivityThread(672):  at com.android.emailcommon.service.ServiceProxy.test(ServiceProxy.java:191)
02-12 01:34:55.714: E/ActivityThread(672):  at com.android.exchange.ExchangeService$7.run(ExchangeService.java:1850)
02-12 01:34:55.714: E/ActivityThread(672):  at com.android.emailcommon.utility.Utility$2.doInBackground(Utility.java:551)
02-12 01:34:55.714: E/ActivityThread(672):  at com.android.emailcommon.utility.Utility$2.doInBackground(Utility.java:549)
02-12 01:34:55.714: E/ActivityThread(672):  at android.os.AsyncTask$2.call(AsyncTask.java:287)
02-12 01:34:55.714: E/ActivityThread(672):  at java.util.concurrent.FutureTask.run(FutureTask.java:234)
02-12 01:34:55.714: E/ActivityThread(672):  at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1080)
02-12 01:34:55.714: E/ActivityThread(672):  at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:573)
02-12 01:34:55.714: E/ActivityThread(672):  at java.lang.Thread.run(Thread.java:856)
02-12 01:34:55.724: E/StrictMode(672): null
02-12 01:34:55.724: E/StrictMode(672): android.app.ServiceConnectionLeaked: Service com.android.exchange.ExchangeService has leaked ServiceConnection com.android.emailcommon.service.ServiceProxy$ProxyConnection@40d074a0 that was originally bound here
02-12 01:34:55.724: E/StrictMode(672):  at android.app.LoadedApk$ServiceDispatcher.<init>(LoadedApk.java:969)
02-12 01:34:55.724: E/StrictMode(672):  at android.app.LoadedApk.getServiceDispatcher(LoadedApk.java:863)
02-12 01:34:55.724: E/StrictMode(672):  at android.app.ContextImpl.bindService(ContextImpl.java:1418)
02-12 01:34:55.724: E/StrictMode(672):  at android.app.ContextImpl.bindService(ContextImpl.java:1407)
02-12 01:34:55.724: E/StrictMode(672):  at android.content.ContextWrapper.bindService(ContextWrapper.java:473)
02-12 01:34:55.724: E/StrictMode(672):  at com.android.emailcommon.service.ServiceProxy.setTask(ServiceProxy.java:157)
02-12 01:34:55.724: E/StrictMode(672):  at com.android.emailcommon.service.ServiceProxy.setTask(ServiceProxy.java:145)
02-12 01:34:55.724: E/StrictMode(672):  at com.android.emailcommon.service.ServiceProxy.test(ServiceProxy.java:191)
02-12 01:34:55.724: E/StrictMode(672):  at com.android.exchange.ExchangeService$7.run(ExchangeService.java:1850)
02-12 01:34:55.724: E/StrictMode(672):  at com.android.emailcommon.utility.Utility$2.doInBackground(Utility.java:551)
02-12 01:34:55.724: E/StrictMode(672):  at com.android.emailcommon.utility.Utility$2.doInBackground(Utility.java:549)
02-12 01:34:55.724: E/StrictMode(672):  at android.os.AsyncTask$2.call(AsyncTask.java:287)
02-12 01:34:55.724: E/StrictMode(672):  at java.util.concurrent.FutureTask.run(FutureTask.java:234)
02-12 01:34:55.724: E/StrictMode(672):  at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1080)
02-12 01:34:55.724: E/StrictMode(672):  at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:573)
02-12 01:34:55.724: E/StrictMode(672):  at java.lang.Thread.run(Thread.java:856)
02-12 01:34:55.734: W/ActivityManager(288): Unbind failed: could not find connection for android.os.BinderProxy@40d250b8
02-12 01:34:55.754: D/dalvikvm(672): GC_CONCURRENT freed 488K, 21% free 2459K/3100K, paused 75ms+4ms, total 155ms

出了什么问题,以及如何正确设置?

4

1 回答 1

1

这里发生的事情通常是由活动和服务之间的绑定引起的。该活动已停止,因此系统认为不再需要该服务并可能停止该服务,从而导致该错误。

快速解决方法是添加unbindService(mConnection); 在您的 onstop() 或 onDestroy() 方法中。

如果你想让服务在启动它的活动被销毁后仍然运行,你应该首先使用startService

ComponentName myService = startService(new Intent(this, myClass.class));
bindService(new Intent(this, myClass.class), myServiceConn, BIND_AUTO_CREATE);

来自 Android 文档:

对于startService

使用 startService() 会覆盖由 bindService(Intent, ServiceConnection, int) 管理的默认服务生命周期:它要求服务在调用 stopService(Intent) 之前保持运行,无论是否有任何客户端连接到它。

对于绑定服务

只要调用上下文存在,系统就会认为该服务是必需的。例如,如果这个 Context 是一个停止的 Activity,那么在 Activity 恢复之前,服务将不需要继续运行。

于 2013-02-12T03:18:53.703 回答