LoginSignup
3
3

More than 5 years have passed since last update.

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

Last updated at Posted at 2016-06-17

■━⊂( ・∀・) 彡 ガッ☆`Д´)ノ

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_bug.png

いつの間にか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も貼っときますね

Changelog - Android SDK 2016-06-17 21-19-49.png

追記2

翌日の午前中にはバグを直したSDKをリリースしていたようです。
スクリーンショット 2016-06-20 10.04.20.png

3
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
3