Android Facebook-SDK:解组时找不到类:com.facebook.login.LoginClient $ Request [英] Android Facebook-SDK: Class not found when unmarshalling: com.facebook.login.LoginClient$Request
问题描述
这是一个相关问题,但是我们的堆栈跟踪是不同的,因为我纯粹是在Facebook-SDK上。
以Facebook的方式,错误报告已关闭现在。他们建议添加以下行:
getActivity()。getIntent()。setExtrasClassLoader(LoginClient.Request.class.getClassLoader() );
request =(LoginClient.Request)getActivity()。getIntent()。getParcelableExtra(EXTRA_REQUEST);
但我不明白在哪里添加。另外 LoginClient
是本地包。
09-24 08:28: 56.658 4107-4145 /? E / Parcel:解组时找不到类:com.facebook.login.LoginClient $ Request
java.lang.ClassNotFoundException:com.facebook.login.LoginClient $ Request
java.lang.Class.classForName (Native Method)
在java.lang.Class.forName(Class.java:308)
在java.lang.Class.forName(Class.java:272)
在android.os .Parcel.readParcelableCreator(Parcel.java:2275)
在android.os.Parcel.readParcelable(Parcel.java:2239)
在android.os.Parcel.readValue(Parcel.java:2146)
at android.os.Parcel.readArrayMapInternal(Parcel.java:2479)
at android.os.BaseBundle.unparcel(BaseBundle.java:221)
at android.os.BaseBundle.getString( BaseBundle.java:918)
at android.content.Intent.getStringExtra(Intent.java:5378)
at com.android.server.am.ActivityStackSupervisor.startActivityLocked(ActivityStackSupervisor.java:1772)
在com.android.server.am.ActivityStackSupervisor.startActivityMayWait(ActivityStackSupervisor.java:1317)
在com.android.server.am.ActivityManagerService.startActivityAsUser(ActivityManagerService.java:4610)
在com.android .server.am.ActivityManagerService.startActivity(ActivityManagerService.java:4453)
在android.app.ActivityManagerNative.onTransact(ActivityManagerNative.java:140)
在com.android.server.am.ActivityManagerService.onTransact (ActivityManagerService.java:3001)
在android.os.Binder.execTransact(Binder.java:446)
引起的:java.lang.ClassNotFoundException:没有找到类com.facebook.login路径上的.LoginClient $ Request:DexPathList [[directory。],nativeLibraryDirectories = [/ vendor / lib,/ system / lib]]
在dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56)
在java.lang.ClassLoader.loadClass(ClassLoader.java:511)
在java.lang.ClassLoader.loadClass(ClassLoader.java:469)
在java.lang.Class.classForName(本机方法)
在java.lang.Class.forName(Class.java:308)
在java.lang.Class.forName(Class.java:272)
在android.os.Parcel.readParcelableCreator(Parcel.java:2275)
在android.os.Parcel.readParcelable (Parcel.java:2239)
在android.os.Parcel.readValue(Parcel.java:2146)
在android.os.Parcel.readArrayMapInternal(Parcel.java:2479)
在android.os.BaseBundle.unparcel(BaseBundle.java:221)
在android.os.BaseBundle.getString(BaseBundle.java:918)
在android.content.Intent.getStringExtra(Intent.java: 5378)
at com.android.server.am.ActivityStackSupervisor.startActivityLocked(ActivityStackSupervisor。 java:1772)
at com.android.server.am.ActivityStackSupervisor.startActivityMayWait(ActivityStackSupervisor.java:1317)
at com.android.server.am.ActivityManagerService.startActivityAsUser(ActivityManagerService.java:4610)
at com.android.server.am.ActivityManagerService.startActivity(ActivityManagerService.java:4453)
at android.app.ActivityManagerNative.onTransact(ActivityManagerNative.java:140)
at com.android .server.am.ActivityManagerService.onTransact(ActivityManagerService.java:3001)
在android.os.Binder.execTransact(Binder.java:446)
禁止:java.lang.ClassNotFoundException:com.facebook。 login.LoginClient $ Request
在java.lang.Class.classForName(本机方法)
在java.lang.BootClassLoader.findClass(ClassLoader.java:781)
在java.lang.BootClassLoader .loadCl ass(ClassLoader.java:841)
在java.lang.ClassLoader.loadClass(ClassLoader.java:504)
... 18更多
导致:java.lang.NoClassDefFoundError:Class没有使用引导类加载器找到;没有堆栈
我有这个问题,启用多重启用
将其添加到您的构建文件中
multiDexEnabled true
此活动中的此代码
@Override
protected void attachBaseContext(Context context){
super.attachBaseContext(context);
MultiDex.install(this);
}
将其添加到您的构建毕业生依赖关系
compile'com.android.support:multidex:1.0.1'
Did anyone saw this before?
Here is a releated question, but our stacktrace is different, for me it's purely on Facebook-SDK.
There been a bug report to Facebook on this manner, it's closed now. They suggest to add those lines:
getActivity().getIntent().setExtrasClassLoader(LoginClient.Request.class.getClassLoader());
request = (LoginClient.Request) getActivity().getIntent().getParcelableExtra(EXTRA_REQUEST);
But I don't understand where to add this. Also LoginClient
is package local.
09-24 08:28:56.658 4107-4145/? E/Parcel﹕ Class not found when unmarshalling: com.facebook.login.LoginClient$Request
java.lang.ClassNotFoundException: com.facebook.login.LoginClient$Request
at java.lang.Class.classForName(Native Method)
at java.lang.Class.forName(Class.java:308)
at java.lang.Class.forName(Class.java:272)
at android.os.Parcel.readParcelableCreator(Parcel.java:2275)
at android.os.Parcel.readParcelable(Parcel.java:2239)
at android.os.Parcel.readValue(Parcel.java:2146)
at android.os.Parcel.readArrayMapInternal(Parcel.java:2479)
at android.os.BaseBundle.unparcel(BaseBundle.java:221)
at android.os.BaseBundle.getString(BaseBundle.java:918)
at android.content.Intent.getStringExtra(Intent.java:5378)
at com.android.server.am.ActivityStackSupervisor.startActivityLocked(ActivityStackSupervisor.java:1772)
at com.android.server.am.ActivityStackSupervisor.startActivityMayWait(ActivityStackSupervisor.java:1317)
at com.android.server.am.ActivityManagerService.startActivityAsUser(ActivityManagerService.java:4610)
at com.android.server.am.ActivityManagerService.startActivity(ActivityManagerService.java:4453)
at android.app.ActivityManagerNative.onTransact(ActivityManagerNative.java:140)
at com.android.server.am.ActivityManagerService.onTransact(ActivityManagerService.java:3001)
at android.os.Binder.execTransact(Binder.java:446)
Caused by: java.lang.ClassNotFoundException: Didn't find class "com.facebook.login.LoginClient$Request" on path: DexPathList[[directory "."],nativeLibraryDirectories=[/vendor/lib, /system/lib]]
at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56)
at java.lang.ClassLoader.loadClass(ClassLoader.java:511)
at java.lang.ClassLoader.loadClass(ClassLoader.java:469)
at java.lang.Class.classForName(Native Method)
at java.lang.Class.forName(Class.java:308)
at java.lang.Class.forName(Class.java:272)
at android.os.Parcel.readParcelableCreator(Parcel.java:2275)
at android.os.Parcel.readParcelable(Parcel.java:2239)
at android.os.Parcel.readValue(Parcel.java:2146)
at android.os.Parcel.readArrayMapInternal(Parcel.java:2479)
at android.os.BaseBundle.unparcel(BaseBundle.java:221)
at android.os.BaseBundle.getString(BaseBundle.java:918)
at android.content.Intent.getStringExtra(Intent.java:5378)
at com.android.server.am.ActivityStackSupervisor.startActivityLocked(ActivityStackSupervisor.java:1772)
at com.android.server.am.ActivityStackSupervisor.startActivityMayWait(ActivityStackSupervisor.java:1317)
at com.android.server.am.ActivityManagerService.startActivityAsUser(ActivityManagerService.java:4610)
at com.android.server.am.ActivityManagerService.startActivity(ActivityManagerService.java:4453)
at android.app.ActivityManagerNative.onTransact(ActivityManagerNative.java:140)
at com.android.server.am.ActivityManagerService.onTransact(ActivityManagerService.java:3001)
at android.os.Binder.execTransact(Binder.java:446)
Suppressed: java.lang.ClassNotFoundException: com.facebook.login.LoginClient$Request
at java.lang.Class.classForName(Native Method)
at java.lang.BootClassLoader.findClass(ClassLoader.java:781)
at java.lang.BootClassLoader.loadClass(ClassLoader.java:841)
at java.lang.ClassLoader.loadClass(ClassLoader.java:504)
... 18 more
Caused by: java.lang.NoClassDefFoundError: Class not found using the boot class loader; no stack available
I had this problem and I fixed with multidex enabled
add this in your build file
multiDexEnabled true
also this code in your activity
@Override
protected void attachBaseContext(Context context) {
super.attachBaseContext(context);
MultiDex.install(this);
}
after adding this in your build gradle dependencies
compile 'com.android.support:multidex:1.0.1'
这篇关于Android Facebook-SDK:解组时找不到类:com.facebook.login.LoginClient $ Request的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!