2013-01-22 32 views
5

我得到这个ClassCaseException -ClassCastException异常:android.os.BinderProxy无法施展

/ActivityManager(213): Bad activity token: [email protected] 
W/ActivityManager(213): java.lang.ClassCastException: android.os.BinderProxy cannot be cast to 
com.android.server.am.ActivityRecord$TokenW/ActivityManager(213): at 
com.android.server.am.ActivityRecord.forToken(ActivityRecord.java:295) 
W/ActivityManager(213): at com.android.server.am.ActivityManagerService.configureSoftkeysActivity(ActivityManagerService.java:15095) 
W/ActivityManager(213): at android.app.ActivityManagerNative.onTransact(ActivityManagerNative.java:1572)W/ActivityManager(213):  at com.android.server.am.ActivityManagerService.onTransact(ActivityManagerService.java:1646) 
W/ActivityManager(213): at android.os.Binder.execTransact(Binder.java:338) 
W/ActivityManager(213): at dalvik.system.NativeStart.run(Native Method) 

做任何一件有为什么我收到此异常的想法。提前致谢。

+0

在发生此异常的位置添加一些代码 –

回答

12

我知道它已经很老了,但我想我会回答,因为我刚刚解决了这个问题。这(对我来说)是由于我的Service声明了应用程序清单中的android:process。简单地删除,立即解决了我的问题。

希望这可以帮助别人!

+1

当服务在同一进程上运行时,我遇到了这种情况,并且不知道这怎么可能。如果任何来自未来的人看到这一点 - 请回复:)我已经解决了这个问题或找到了解决方法。 –

+0

我有完全相同的问题。 @Not_a_Golfer你是否设法理解和/或解决它? – neteinstein

+3

@NeTeInStEiN首先,我找到了原因 - 这是因为某些原因,同一个应用程序的两个进程同时存在,主要是在更新期间。您的服务是否作为粘性服务运行? IIRC使这项服务非粘性有所帮助。 –

1

如果服务绑定与调用方处于不同的过程中,则应使用AIDL接口。

相关问题