【问题标题】:What does this error mean in eclipse(android), using ksoap2 to access a webservice?这个错误在eclipse(android)中是什么意思,使用kso​​ap2访问webservice?
【发布时间】:2013-02-12 01:40:10
【问题描述】:

我收到以下错误。该程序应该打印它从在线 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

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

【问题讨论】:

    标签: android wsdl ksoap2 logcat


    【解决方案1】:

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

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

    如果你想让服务在启动它的activity被销毁后仍然运行,你应该首先使用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) 之前保持运行的服务, 无论是否有任何客户端连接到它。

    对于bindService

    该服务将被视为系统需要的时间 因为调用上下文存在。例如,如果这个 Context 是 停止的活动,服务将不需要继续 一直运行,直到 Activity 恢复。

    【讨论】:

    • 我没有 onstop() 或 ondestroy() 方法...我必须把它们放进去吗?
    • 尝试在您的活动中覆盖它们。但是请记住在覆盖它们时调用超类。见stackoverflow.com/a/14603745/1365960
    • 感谢您的回复。但我仍然不清楚究竟需要做什么。如果有帮助的话,我在除了 soapobject 方法之外的每个方法之前都有 @Override。
    • 尝试只覆盖onDestroy方法和onStop方法,解绑其中的服务。
    猜你喜欢
    • 2015-08-22
    • 1970-01-01
    • 1970-01-01
    • 2023-02-22
    • 2017-07-19
    相关资源
    最近更新 更多