我是一般的编程新手,但我正在学习。 试着按照教程和操作方法来学习什么。
我希望在我的应用中使用facebook登录,但我很难让它工作。可能是因为我真的不明白它。
我试图将facebook登录按钮放在一个空项目中,只是为了玩它并学习。
我遇到的问题是callbackmanager在代码中是红色的。
我的MainActivity.java:
package com.langaard.facebooktest;
import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import com.facebook.CallbackManager;
import com.facebook.FacebookCallback;
import com.facebook.FacebookException;
import com.facebook.FacebookSdk;
import com.facebook.appevents.AppEventsLogger;
import com.facebook.login.LoginResult;
import com.facebook.login.widget.LoginButton;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
FacebookSdk.sdkInitialize(getApplicationContext());
callbackManager = CallbackManager.Factory.create();
LoginButton loginButton = (LoginButton) view.findViewById(R.id.login_button);
loginButton.registerCallback(callbackManager, new FacebookCallback<LoginResult>() {
@Override
public void onSuccess(LoginResult loginResult) {
// App code
}
@Override
public void onCancel() {
// App code
}
@Override
public void onError(FacebookException exception) {
// App code
}
});
}
@Override
protected void onResume() {
super.onResume();
// Logs 'install' and 'app activate' App Events.
AppEventsLogger.activateApp(this);
}
@Override
protected void onPause() {
super.onPause();
// Logs 'app deactivate' App Event.
AppEventsLogger.deactivateApp(this);
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
callbackManager.onActivityResult(requestCode, resultCode, data);
}
}
错误消息是: 错误:(22,9)错误:找不到符号变量callbackManager 错误:(23,49)错误:找不到符号变量视图 错误:(24,38)错误:找不到符号变量callbackManager 错误:(62,9)错误:找不到符号变量callbackManager
我很害羞这是一个简单的修复,我只是没有看到它,但感谢你的帮助。
感谢。 符。
答案 0 :(得分:0)
在设置内容视图之前初步使用Facebook SDK。
在此更改。
FacebookSdk.sdkInitialize(getApplicationContext());
setContentView(R.layout.activity_main);
此外,您还需要为callbackmanager声明变量。
这样做。
CallbackManager callbackManager;
答案 1 :(得分:0)
您的callback
对象未声明,请添加
CallbackManager callbackManager;
@Override
protected void onCreate(Bundle savedInstanceState) {
....
callbackManager = CallbackManager.Factory.create();
....
}
答案 2 :(得分:0)
您尚未声明CallbackManager并且您正在使用它。在任何方法中使用它之前,在类中声明它。
public class MainActivity extends AppCompatActivity {
//declaration was missing here
private CallbackManager callbackManager;
@Override
protected void onCreate(Bundle savedInstanceState) {
//Now you can use it here