■━⊂( ・∀・) 彡 ガッ☆`Д´)ノ
Facebookのログインを実装してたら突然(2016/06/17 14:00以降くらいから?)以下のエラー吐いてcrashするようになった
E/UncaughtException: java.lang.NullPointerException: Argument 'context' cannot be null
at com.facebook.internal.Validate.notNull(Validate.java:76)
at com.facebook.internal.Utility.getMetadataApplicationId(Utility.java:594)
at com.facebook.appevents.AppEventsLogger.<init>(AppEventsLogger.java:757)
at com.facebook.appevents.AppEventsLogger.<init>(AppEventsLogger.java:732)
at com.facebook.appevents.AppEventsLogger.newLogger(AppEventsLogger.java:400)
at com.facebook.FacebookButtonBase.logButtonCreated(FacebookButtonBase.java:225)
at com.facebook.FacebookButtonBase.onAttachedToWindow(FacebookButtonBase.java:136)
at com.facebook.login.widget.LoginButton.onAttachedToWindow(LoginButton.java:452)
at android.view.View.dispatchAttachedToWindow(View.java:14520)
at android.view.ViewGroup.dispatchAttachedToWindow(ViewGroup.java:2843)
at android.view.ViewGroup.dispatchAttachedToWindow(ViewGroup.java:2843)
at android.view.ViewGroup.dispatchAttachedToWindow(ViewGroup.java:2843)
at android.view.ViewGroup.dispatchAttachedToWindow(ViewGroup.java:2843)
at android.view.ViewGroup.dispatchAttachedToWindow(ViewGroup.java:2843)
at android.view.ViewGroup.dispatchAttachedToWindow(ViewGroup.java:2843)
at android.view.ViewGroup.dispatchAttachedToWindow(ViewGroup.java:2843)
at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1364)
at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1107)
at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:6013)
at android.view.Choreographer$CallbackRecord.run(Choreographer.java:858)
at android.view.Choreographer.doCallbacks(Choreographer.java:670)
at android.view.Choreographer.doFrame(Choreographer.java:606)
at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:844)
at android.os.Handler.handleCallback(Handler.java:739)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:148)
at android.app.ActivityThread.main(ActivityThread.java:5417)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
実装はquick start通りだしManifestにはmeta-dataちゃんと書いてあってstrings.xmlにも記述あるのに…
色々消してLoginButtonだけにしても状況変わらず、com.facebook.login.widget.LoginButton
だけでアウトっぽいなんだこれ
と思ってハマってたらstack overflowに神が!!!
いつの間にかfacebook sdkのバージョンが上がってて、それがバグってたってことでFA?
ということで以下の様に1個前の4.12.1
を指定してやることでちゃんとログインボタンの画面が表示されましたちゃんちゃん。
dependencies {
// ADD Facebook Login
compile 'com.facebook.android:facebook-android-sdk:[4,5)'
// => 4.13.0が落ちてきてた
// Gradle Build Messageでは下のようなログが
// :app:prepareComFacebookAndroidFacebookAndroidSdk4130Library UP-TO-DATE
}
↓
dependencies {
// ADD Facebook Login
compile 'com.facebook.android:facebook-android-sdk:4.12.1'
}
頼むよFacebookさん…
ちなみにリリースノート見ても4.11.0
で止まってるのどうなのよ、2ヶ月前じゃん
追記
リリースノートのページを英語版(US)で見れば4.13.0のリリース内容見れます
Change Logも貼っときますね