Java 错误:解组:com.facebook.login.login客户端请求时找不到类
我在点击“使用Facebook登录”(简单的登录按钮)时遇到这个错误 我有谷歌,并在这里阅读其他主题-但我看不到任何东西匹配我的问题 我在下面添加Login.java类Java 错误:解组:com.facebook.login.login客户端请求时找不到类,java,android,facebook,facebook-sdk-4.0,Java,Android,Facebook,Facebook Sdk 4.0,我在点击“使用Facebook登录”(简单的登录按钮)时遇到这个错误 我有谷歌,并在这里阅读其他主题-但我看不到任何东西匹配我的问题 我在下面添加Login.java类 public class Login extends Activity { /** * Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super
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");
}
});
}
}
检查活动上的android:noHistory标志 参见链接
寻找安德烈亚斯·伯根沃尔的帖子我也有这个问题。然而,我的是在
FBActivity.OnResume
方法中进行的登录调用,用于在接受fb perms后回调以登录
我只是在onCreate
方法中将请求移动到概要文件跟踪器中
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);
}
}
};
还要确保您的OnCreate
super如下所示
FacebookSdk.sdkInitialize(getApplicationContext());
mCallbackmanager = CallbackManager.Factory.create();
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_fbauth_);
…您应该将此添加到您的活动中
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
callbackManager.onActivityResult(requestCode, resultCode, data);
}
但如果您使用的是parse SDK,请添加以下内容
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
ParseFacebookUtils.onActivityResult(requestCode, resultCode, data);
}
我也遇到了同样的问题,通过将
facebook\u app\u id
改为strings.xml
来解决:
<meta-data
android:name="com.facebook.sdk.ApplicationId"
android:value="@string/facebook_app_id" />
在我的例子中,我忘了在facebook的开发者页面上添加应用程序包名和类名。在我添加了这些信息之后,它就工作了。我一直在努力解决这个问题,并使用启用的multidex进行了修复
将其添加到构建文件中
multiDexEnabled true
在您的活动中也可以使用此代码
@Override
protected void attachBaseContext(Context context) {
super.attachBaseContext(context);
MultiDex.install(this);
}
在构建渐变依赖项中添加此项之后
compile 'com.android.support:multidex:1.0.1'
当用户安装了本机Facebook应用程序时,可能会发生这种情况 您可以通过初始化
LoginManager
的LoginBehaviour
来禁止打开它的尝试:
// Don't allow the Facebook App to open.
LoginManager.getInstance().setLoginBehavior(LoginBehavior.WEB_VIEW_ONLY);
事实上这是真的。由于onActivityResult方法未在您的活动中实现,您还必须调用
callbackManager.onActivityResult(请求代码、结果代码、数据)代码>
方法中的方法。我确信您的问题已100%解决。请发布完整的异常堆栈跟踪和其他错误消息。请参阅first postI也收到了这个错误,LoginManager似乎没有其他人收到。不知怎么的,这个类找不到了,但我不知道我做了什么不同。请查看:-@MechEngineer。我不知道,但在这之后它就消失了。谢谢你!我一定是在搜索过程中错过了它,现在我可以转移到其他问题上了。