AndroidアプリはJavaで組めるので、現在流通しているすべてのJavaライブラリが流用できるように思えるが、厳密には(文法ではなく、環境という意味で)Javaではなく、しかも組み込みJavaとして使用する手直ししないと動作しない場合も多々ある。
例えば
などは、その代表例。
オープンソースなライブラリなら自分で修正できるので、自力で解決できる事も多い。ただ、ソースが公開されてない場合はもうお手上げ。動かない場合は諦めるしかない。外部のJavaライブラリを使用する際は、サンプルアプリを作成して動作確認した上で実アプリに組み込む事をお勧めする。
とまあ、そんな前置きはさておき、AndroidにTwitter4j 2.0.8を組み込んだ時にハマった点とその解決方法を書いておく。この情報は、Twitter4jの作者さんから教えてもらった。サンクス!
事の詳細はDoes Twitter4J really support Android? - Twitter4J | Google Groupsに書いてあるのだが、とりあえず概略を。
Android環境では、.propertiesファイルを見つけられない。
Javaでの外部定義で使われる.propertiesファイルはAndroidでは呼び出せないらしい。ので、.propertiesファイルで定義されている内容をハードコートする。
Android環境にはjavax.xml.transform.TransformerFactoryが無い
Android標準には組み込まれてないので外部ライブラリとしてリンクする必要がある。が、今回の場合は、呼び出している箇所が1つ & それも重要ではない。という事で、全部コメントアウトして対応。必要だったらリンクするしかないんだろうな。メモリが心配だが。
以上2点を考慮する必要がある。次のバージョンあたりでは対応してくれるんじゃないかと密かに期待。