在使用 bindService 时遇到这个问题,反复对比网上的别人的代码,没有任何问题,直接把网上的代码复制到我的项目里也没有人任何问题,但是 直接使用我的 Service 就有问题,提示
03-27 13:16:36.873 10403-10403/com.sample.android:bdservice_v1 E/AndroidRuntime﹕ FATAL EXCEPTION: main
java.lang.ClassCastException: android.os.BinderProxy cannot be cast to com.octo.android.robospice.SpiceService$SpiceServiceBinder
at com.octo.android.robospice.SpiceManager$SpiceServiceConnection.onServiceConnected(SpiceManager.java:1084)
at android.app.LoadedApk$ServiceDispatcher.doConnected(LoadedApk.java:1131)
at android.app.LoadedApk$ServiceDispatcher$RunConnection.run(LoadedApk.java:1148)
at android.os.Handler.handleCallback(Handler.java:725)
at android.os.Handler.dispatchMessage(Handler.java:92)
at android.os.Looper.loop(Looper.java:153)
at android.app.ActivityThread.main(ActivityThread.java:5297)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:833)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:600)
at de.robv.android.xposed.XposedBridge.main(XposedBridge.java:126)
at dalvik.system.NativeStart.main(Native Method)
搜了半天,在 Stack Overflow 找到答案 原文: I know it’s old, but thought I’d answer as I’ve just solved this myself. This (for me) is due to having android
in my Service declaration of the application manifest. Simply removing that solved my issue immediately. 大意是在 manifest 里加了 android时 Service 运行在另外的进程中,想起了之前为了让 servic 保持存活,所以将 service 运行在了独立的进程,去掉后 android就正常了!如果想跨进程通信 只能用广播,或者 AIDL 了