昨日、JNIがらみでどうしてもビルドできなかったAndroid用、オープンソースのPDFビューワ、apdfviewer(マーケット、及び完成版のアプリ名称はPDFVierer、Googleのソースリポジトリ名がapdfviewer)のビルドだが、今日は無理やり作業を進めた。
いろいろ試行錯誤を進めたのだが、PDFライブラリであるpoppler部分と独自コード部分であるJNIインタフェース部分を別のAndroid.mkファイルで記述し(リポジトリのまま)、普通のmakeのように階層的にビルドが動いてくれない。
で、仕方が無いから、JNIのシェアードライブラリをビルドするAndroid.mkファイルに、popplerライブラリのソースファイルをすべて入れて一度にビルドしてしまうことにした。どうせスタティックリンクするものなので、出来上がりは同等品だ。
で、強制ビルド。
しかし、warningの嵐。castがdeprecated、つまりコンパイラのバージョンの問題で非推奨になっている記述が山のようにある。まぁ、それはおいおい、としておいても、エラーになったファイルが最終的に6個あった。これはエラーで終了になったものをAndroid.mkファイルでコメントアウトしていき、コンパイルが終了してリンクエラーで終了になる段階まで持って行き、そこで最低限のソース修正を行うようにするためにカウントしたものだ。
でも、実際、動いているアプリとしてマーケットに流通しているアプリのソースもらってきて、コンパイルして、エラーになるって???コンパイラ(NDK)のバージョンの問題かなぁ?
PDFライブラリのpoppler自体も最新と比べると結構古いのを使ってるみたいなので、動くようになったら、最新版とdiffしながらバージョンアップしてみようかとも思う。Android向けにincludeファイルとかの変更をしないといけないから単純に置き換えるとエラーになるはずなのだ。
そんなことよりも、右綴じ、ページ単位表示、リンククリックの実装が最初だ。
コメント