【Android】FacebookのSDKがヌルポ吐いて嵌った


■━⊂(　・∀・) 彡 ｶﾞｯ☆`Д´)ﾉ


Facebookのログインを実装してたら突然（2016/06/17 14:00以降くらいから？）以下のエラー吐いてcrashするようになった

```logcat
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](http://stackoverflow.com/questions/37879471/argument-context-cannot-be-null-in-facebook)に神が！！！
![facebook_sdk_bug.png](https://qiita-image-store.s3.amazonaws.com/0/109065/3804b30e-ee55-e757-0353-a4d130a56d6e.png "facebook_sdk_bug.png")


いつの間にかfacebook sdkのバージョンが上がってて、それがバグってたってことでFA？
ということで以下の様に1個前の`4.12.1`を指定してやることでちゃんとログインボタンの画面が表示されましたちゃんちゃん。


```before
dependencies {
    // ADD Facebook Login
    compile 'com.facebook.android:facebook-android-sdk:[4,5)'
    // => 4.13.0が落ちてきてた
    // Gradle Build Messageでは下のようなログが
    // :app:prepareComFacebookAndroidFacebookAndroidSdk4130Library UP-TO-DATE
}
```

↓

```after
dependencies {
    // ADD Facebook Login
    compile 'com.facebook.android:facebook-android-sdk:4.12.1'
}
```

頼むよFacebookさん…
ちなみに[リリースノート](https://developers.facebook.com/docs/android/change-log-4.x)見ても`4.11.0`で止まってるのどうなのよ、2ヶ月前じゃん

## 追記
[リリースノートのページを英語版（US）](https://developers.facebook.com/docs/android/downloads?locale=en_US)で見れば4.13.0のリリース内容見れます

Change Logも貼っときますね

![Changelog - Android SDK 2016-06-17 21-19-49.png](https://qiita-image-store.s3.amazonaws.com/0/109065/26771c81-6c12-687e-5a53-3d778677b699.png "Changelog - Android SDK 2016-06-17 21-19-49.png")


## 追記２
翌日の午前中にはバグを直したSDKをリリースしていたようです。
![スクリーンショット 2016-06-20 10.04.20.png](https://qiita-image-store.s3.amazonaws.com/0/109065/cb6dba0f-4f31-82c4-e40c-dcc99e80da56.png "スクリーンショット 2016-06-20 10.04.20.png")