내 게임에 페이스 북 안드로이드 SDK를 구현하기 위해 노력하고있어하지만 페이스 북을 사용하여 로그인 할 때, 그것은java.lang.NullPointerException이 자 마린 페이스 북 안드로이드 SDK
Java.Lang.NullPointerException: Attempt to invoke virtual method 'boolean java.lang.String.equals(java.lang.Object)' on a null object reference
at --- End of managed exception stack trace ---
at java.lang.NullPointerException: Attempt to invoke virtual method 'boolean java.lang.String.equals(java.lang.Object)' on a null object reference
at at com.facebook.login.LoginClient.getLogger(LoginClient.java:369)
at at com.facebook.login.LoginClient.logAuthorizationMethodComplete(LoginClient.java:419)
at at com.facebook.login.LoginClient.tryNextHandler(LoginClient.java:202)
at at com.facebook.login.GetTokenLoginMethodHandler.getTokenCompleted(GetTokenLoginMethodHandler.java:119)
at at com.facebook.login.GetTokenLoginMethodHandler$1.completed(GetTokenLoginMethodHandler.java:74)
at at com.facebook.internal.PlatformServiceClient.callback(PlatformServiceClient.java:157)
at at com.facebook.internal.PlatformServiceClient.handleMessage(PlatformServiceClient.java:141)
at at com.facebook.internal.PlatformServiceClient$1.handleMessage(PlatformServiceClient.java:62)
at at android.os.Handler.dispatchMessage(Handler.java:102)
at at android.os.Looper.loop(Looper.java:234)
at at android.app.ActivityThread.main(ActivityThread.java:5526)
at at java.lang.reflect.Method.invoke(Native Method)
at at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
at at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
이가이 오류를 충돌하고 생성하는 것입니다 내 주요 활동 클래스
public class MainActivity : AndroidGameActivity
{
int count = 1;
protected override void OnActivityResult (int _requestCode, Result _resultCode, Intent _intent)
{
GooglePlayServicesManager.instance.OnActivityResult(_requestCode, _resultCode, _intent);
}
protected override void OnCreate (Bundle savedInstanceState)
{
base.OnCreate (savedInstanceState);
var g = new Game1();
Social.SocialManager.OnCreate_Android(this);
FacebookManager.mInstance.InitFacebookSDK (this.ApplicationContext, this);
SetContentView(g.Services.GetService<View>());
g.Run();
}
protected override void OnDestroy()
{
base.OnDestroy();
}
protected override void OnStart()
{
base.OnStart();
Console.WriteLine("activity::onstart");
}
protected override void OnStop()
{
base.OnStop();
Console.WriteLine("activity::onstop");
}
protected override void OnResume()
{
base.OnResume();
//SpringAdvert.AdvertManager.OnAppResume();
}
protected override void OnPause()
{
base.OnPause();
//SpringAdvert.AdvertManager.OnAppPause();
}
public override void OnConfigurationChanged(Android.Content.Res.Configuration newConfig)
{
base.OnConfigurationChanged(newConfig);
}
}
이 나는 m에 노력하고있어 InitFacebookSDK
public void InitFacebookSDK(Android.Content.Context Context, Android.App.Activity Activity)
{
if(!FacebookSdk.IsInitialized)
{
//Initialize the whole sdk
FacebookSdk.SdkInitialize(Context);
activity = Activity;
}
#if DEBUG
Console.WriteLine ("Facebook SDK Initialized: " + FacebookSdk.IsInitialized);
#endif
//Creates a callback manager to handle the callbacks facebook have
CallbackManager = CallbackManagerFactory.Create();
var loginCallback = new FacebookCallback<LoginResult> {
HandleSuccess = loginResult => {
HandlePendingAction();
},
HandleCancel =() => {
if (pendingAction != PendingAction.NONE) {
pendingAction = PendingAction.NONE;
}
},
HandleError = loginError => {
if (pendingAction != PendingAction.NONE
&& loginError is FacebookAuthorizationException) {
pendingAction = PendingAction.NONE;
}
}
};
LoginManager.Instance.RegisterCallback (CallbackManager, loginCallback);
}
입니다 나는 선수 대신 로그인
public void LoginToFacebook()
{
LoginManager.Instance.LogInWithReadPermissions (activity, new List<string> { "user_friends" });
#if DEBUG
Console.WriteLine ("Logging into facebook");
#endif
}
에게 내 사용자 지정 단추가 로그인을 눌러 순간을 트리거 그래서 나는 다음과 같은 함수를 호출 로그인을 제공하는 표준 버튼 페이스 북을 사용하는 언론에 대한 사용자 정의 버튼이 그것을 아케 Java.lang.NullPointerException 오류가 시작시 표시됩니다.
나는 keyhash를 생성하고, 페이스 북에 앱을 등록하고, 필요한 모든 것을 AndroidManifest에 추가하는 등 필요한 모든 작업을 수행했습니다.
EDIT : 위의 주요 활동이 InitFacebookSDK와 다른 프로젝트에 있음을 잊어 버렸습니다. 프로젝트가 위치한 곳의 프로젝트를 참조하고 MainActivity에서 호출했습니다. 페이스 북을 다른 프로젝트에 구현하려고 할 때 다음 번에 쉽게 참조 할 수있는 프로젝트에 페이스 북을 구현하려고합니다.
편집 : 내가 먼저 페이스 북 SDK를 초기화 할 때, 나는 다음 페이스 북 관리자에 저장된 android.activity 전달, 나는 다음 LoginWithReadPermission로 전달하여 로그인하는 데 사용할 수 있습니다.
EDIT : 메인 활동에 관련된 모든 페이스 북을 넣으려고 했는데도 여전히 Null 포인터 예외 오류가 반환됩니다. 콜백을 등록하는 것과 마찬가지로 IFacebookCallback에서 MainActivity 참조를 만들고 콜백이 끝나면 로그인합니다.
편집가 : 여기 내 안드로이드 매니페스트
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" android:versionCode="1" android:versionName="1.0" package="com.test.testing">
<uses-sdk android:minSdkVersion="10" android:targetSdkVersion="23" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.INTERNET" />
<application android:allowBackup="true" android:icon="@mipmap/icon" android:label="@string/app_name">
<!-- To access Facebook APIS-->
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.INTERNET" />
<meta-deta android:name="com.facebook.sdk.ApplicationId" android:value="@string/facebook_app_id"/>
<activity android:name="com.facebook.FacebookActivity"
android:configChanges="keyboard|keyboardHidden|screenLayout|screenSize|orientation"
android:theme="@android:style/Theme.Translucent.NoTitleBar"
android:label="@string/app_name" />
</application>
</manifest>
이며, 여기 내 string.xml
내가 아는 바로는<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="hello">Hello World, Click Me!</string>
<string name="app_name">testing</string>
<string name="facebook_app_id">xxxxxxxxxxxx</string>
</resources>
제안에 감사드립니다. 작동하지 않습니다./위의 주요 활동이 InitFacebookSDK와 다른 프로젝트에 있음을 잊어 버렸습니다. MainActivity에서 프로젝트를 참조하고 호출했습니다. –
좋아요, 내가 당신을 도와 줄 수 없기 때문에 approche 도구를 사용하지 않았습니다. – OrcusZ
xamarin에서 컴포넌트를 다운로드 할 때 HelloFacebookSample을 따르는 중이며 –