ClassCastException: android.os.BinderProxy cannot be cast

1 min

在使用 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 了