Nexus SでCouchDB on Androidのインストーラが落ちる件。

Nexus Sの初めてのユーザだから詳細教えてね、とJ Chris Andersonさんからメールが来たので、スクリーンキャプチャを取って送ることにした。んで、その前にStack Trace見てみたら、

"Caused by: java.lang.NullPointerEception at org.couchdb.android.CouchInstaller.checkInstalled(CouchInstaller.java:93)"

とNullPointerExceptionが発生していた。 CouchDBのインストーラのコードはgithubで公開されている ので見てみたら、CouchInstaller.javaの93行目のpackageSet()がAndroid SDKのバージョンが7か8以外の場合はnullを返しているおるよ。Nexus SはSDK VERSIONが9なので…。これだとAndroid 2.1と2.2以外は全部落ちるじゃないか…。

     92         public static boolean checkInstalled() {
     93                 for (String pkg : packageSet()) {
(snip)
    101         public static List<String> packageSet() {
    102                 ArrayList<String> packages = new ArrayList<String>();
(snip)
    109                 if (android.os.Build.VERSION.SDK_INT == 7)
    110                         packages.add("couch-icu-driver-eclair");
    111                 else if (android.os.Build.VERSION.SDK_INT == 8)
    112                         packages.add("couch-icu-driver-froyo");
    113                 else {
    114                         // TODO: Probably should throw some exception here.
    115                         Log.e(TAG, "Unsupported OS/arch combo");
    116                         return null;
    117                 }
    118                 return packages;
    119         }

スクリーンキャプチャと一緒に返信しておいた。早くAndroid 2.3も対応してくださ~い。