Android Facebook-SDK:解组时找不到类:com.facebook.login.LoginClient $ Request [英] Android Facebook-SDK: Class not found when unmarshalling: com.facebook.login.LoginClient$Request

查看:202
本文介绍了Android Facebook-SDK:解组时找不到类: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'c​​om.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屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆