Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/193.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/40.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 错误:解组:com.facebook.login.login客户端请求时找不到类_Java_Android_Facebook_Facebook Sdk 4.0 - Fatal编程技术网

Java 错误:解组:com.facebook.login.login客户端请求时找不到类

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

我在点击“使用Facebook登录”(简单的登录按钮)时遇到这个错误

我有谷歌,并在这里阅读其他主题-但我看不到任何东西匹配我的问题

我在下面添加Login.java类

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。我不知道,但在这之后它就消失了。谢谢你!我一定是在搜索过程中错过了它,现在我可以转移到其他问题上了。