解组时找不到类::错误com.facebook.login.Login客户端请求 [英] Error: Class not found when unmarshalling: com.facebook.login.Login Client Request
问题描述
我打了登录facebook(简单的登录按钮),当得到这个错误。
我有谷歌,这里阅读其他主题 - 但我看不到任何东西匹配我的问题。
我添加下面Login.java类。
公共类登录扩展活动{
/ **
*第一次创建活动时调用。
* /
@覆盖
公共无效的onCreate(包savedInstanceState){
super.onCreate(savedInstanceState);
FacebookSdk.sdkInitialize(getApplicationContext());
的setContentView(R.layout.activity_login);
CallbackManager callbackManager = CallbackManager.Factory.create();
LoginButton loginButton =(LoginButton)findViewById(R.id.login_button);
loginButton.setReadPermissions(public_profile,电子邮件,user_friends);
//其他应用程序特定的专业化
loginButton.registerCallback(callbackManager,新FacebookCallback< LoginResult>(){
@覆盖
公共无效的onSuccess(LoginResult loginResult){
Log.i(登录,登录:);
意图I =新的意图(Login.this,MainActivity.class);
startActivity(ⅰ);
}
@覆盖
公共无效OnCancel的(){
//应用code
}
@覆盖
公共无效onerror的(FacebookException除外){
//应用code
Log.i(错误,错误);
}
});
}
}
堆栈跟踪:
05-28 20:07:27.550 872-1363 /? E /包裹:类解组时,未发现:com.facebook.login.LoginClient $请求
抛出java.lang.ClassNotFoundException:com.facebook.login.LoginClient $请求
在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)
在com.android.server.am.ActivityStackSupervisor.startActivityLocked(ActivityStackSupervisor.java:1768)
在com.android.server.am.ActivityStackSupervisor.startActivityMayWait(ActivityStackSupervisor.java:1313)
在com.android.server.am.ActivityManagerService.startActivityAsUser(ActivityManagerService.java:4522)
在com.android.server.am.ActivityManagerService.startActivity(ActivityManagerService.java:4368)
在android.app.ActivityManagerNative.onTransact(ActivityManagerNative.java:140)
在com.android.server.am.ActivityManagerService.onTransact(ActivityManagerService.java:2964)
在android.os.Binder.execTransact(Binder.java:446)
抛出java.lang.ClassNotFoundException:产生的原因没有找到类com.facebook.login.LoginClient $请求的路径:。DexPathList [目录],nativeLibraryDirectories = [/供应商/ lib中/系统/ 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)
在com.android.server.am.ActivityStackSupervisor.startActivityLocked(ActivityStackSupervisor.j
Java的:1768)在com.android.server.am.ActivityStackSupervisor.startActivityMayWait(ActivityStackSupervisor.java:1313)
在com.android.server.am.ActivityManagerService.startActivityAsUser(ActivityManagerService.java:4522)
在com.android.server.am.ActivityManagerService.startActivity(ActivityManagerService.java:4368)
在android.app.ActivityManagerNative.onTransact(ActivityManagerNative.java:140)
在com.android.server.am.ActivityManagerService.onTransact(ActivityManagerService.java:2964)
在android.os.Binder.execTransact(Binder.java:446)
燮pressed:抛出java.lang.ClassNotFoundException:com.facebook.login.LoginClient $请求
在java.lang.Class.classForName(本机方法)
在java.lang.BootClassLoader.findClass(ClassLoader.java:781)
在java.lang.BootClassLoader.loadClass(ClassLoader.java:841)
在java.lang.ClassLoader.loadClass(ClassLoader.java:504)
... 18更多
java.lang.NoClassDefFoundError的:产生的原因未找到类使用引导类加载器;没有堆栈可用
我也有这个问题。然而,我的是一个登录调用回调接受FB烫发后登陆 FBActivity.OnResume
方法中进行。
我只是提出请求到在的onCreate
法的轮廓跟踪系统
ProfileTracker profileTracker =新ProfileTracker(){
@覆盖
保护无效onCurrentProfileChanged(个人oldProfile,简介currentProfile){
Profile.fetchProfileForCurrentAccessToken();
如果(currentProfile!= NULL){
串fbUserId = currentProfile.getId();
profileUrl = currentProfile.getProfilePictureUri(200,200)的ToString();
Log.d(FB轮廓,得到了新的线程/更新个人资料+ fbUserId);
//如果登录已经跳
GetFacebookProfileAndJump(currentProfile);
}
}
};
此外,还要确保你的的OnCreate
超级如下:
FacebookSdk.sdkInitialize(getApplicationContext());
mCallbackmanager = CallbackManager.Factory.create();
super.onCreate(savedInstanceState);
的setContentView(R.layout.activity_fbauth_);
...
I am getting this error when hitting the "Login With Facebook" (Simple login button).
I have Google, and read other topics here - but I can not see any thing matching my issue.
I am adding Login.java class below.
public class Login extends Activity {
/**
* Called when the activity is first created.
*/
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
FacebookSdk.sdkInitialize(getApplicationContext());
setContentView(R.layout.activity_login);
CallbackManager callbackManager = CallbackManager.Factory.create();
LoginButton loginButton = (LoginButton) findViewById(R.id.login_button);
loginButton.setReadPermissions("public_profile", "email", "user_friends");
// Other app specific specialization
loginButton.registerCallback(callbackManager, new FacebookCallback<LoginResult>() {
@Override
public void onSuccess(LoginResult loginResult) {
Log.i("Login", "Logged in: ");
Intent i = new Intent(Login.this, MainActivity.class);
startActivity(i);
}
@Override
public void onCancel() {
// App code
}
@Override
public void onError(FacebookException exception) {
// App code
Log.i("Error" , "Error");
}
});
}
}
StackTrace:
05-28 20:07:27.550 872-1363/? 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:1768)
at com.android.server.am.ActivityStackSupervisor.startActivityMayWait(ActivityStackSupervisor.java:1313)
at com.android.server.am.ActivityManagerService.startActivityAsUser(ActivityManagerService.java:4522)
at com.android.server.am.ActivityManagerService.startActivity(ActivityManagerService.java:4368)
at android.app.ActivityManagerNative.onTransact(ActivityManagerNative.java:140)
at com.android.server.am.ActivityManagerService.onTransact(ActivityManagerService.java:2964)
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.j
Java:1768) at com.android.server.am.ActivityStackSupervisor.startActivityMayWait(ActivityStackSupervisor.java:1313)
at com.android.server.am.ActivityManagerService.startActivityAsUser(ActivityManagerService.java:4522)
at com.android.server.am.ActivityManagerService.startActivity(ActivityManagerService.java:4368)
at android.app.ActivityManagerNative.onTransact(ActivityManagerNative.java:140)
at com.android.server.am.ActivityManagerService.onTransact(ActivityManagerService.java:2964)
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 too had this issue. Mine however was a login call made within the FBActivity.OnResume
method for callbacks to login after accepting fb perms.
I simply moved the request into the profile tracker in the onCreate
method
ProfileTracker profileTracker = new ProfileTracker() {
@Override
protected void onCurrentProfileChanged(Profile oldProfile, Profile currentProfile) {
Profile.fetchProfileForCurrentAccessToken();
if(currentProfile != null) {
String fbUserId = currentProfile.getId();
profileUrl = currentProfile.getProfilePictureUri(200, 200).toString();
Log.d("FB profile", "got new/updated profile from thread " + fbUserId);
// jump if logged in already
GetFacebookProfileAndJump(currentProfile);
}
}
};
Also ensure your OnCreate
super is as follows
FacebookSdk.sdkInitialize(getApplicationContext());
mCallbackmanager = CallbackManager.Factory.create();
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_fbauth_);
...
这篇关于解组时找不到类::错误com.facebook.login.Login客户端请求的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!