Sooey

2012-02-20 13:12:33 +0900

Titanium MobileでTi.Facebook.BUTTON_STYLE_WIDEを参照するとAndroidではNullPointerExceptionが発生するので場合分けが必要、という話。

Titanium Mobile SDK 1.8.1でTi.Facebook.createLoginButtonを以下のように呼び出していたところ、

実行時に以下のような警告がログに出力された。

[WARN] Styling Options 'wide' will be DEPRECATED in 1.8.0 in favour of
Ti.Facebook.BUTTON_STYLE_WIDE: REMOVED in 1.9)

'wide'という指定は1.8.0でDEPRECATEDとなり1.9では削除される予定なので、かわりにTi.Facebook.BUTTON_STYLE_WIDEを使え、ということです。

そこで、以下のように定数を参照するように書き換えて実行してみると、

iOSでは警告も表示されず問題なく動作するようになったが、AndroidではNullPointerExceptionが発生してアプリが落ちてしまうようになった。

API for Titanium.Facebook.LoginButton.style (version 1.8.1)によると、Androidでは'wide'のままにしておく必要があるようなので、結局以下のようにした。

参考