AndroidSDKのRev.22がリリースしたので、新しく手に入れたノートPC(Xubuntu)に開発環境(Eclipse)を整えたのだが、
早速起動しないという洗礼を受けた。
発生情況
僕のアプリにはnendという広告表示サービスを利用している。
アプリに広告を表示させるために、nendから提供されたライブラリを使用しているのだが、アプリを起動する際にそこでエラーが出ているらしい。
nendライブラリで定義されているviewを呼び出すときにInflateExceptionが出ている。
定義されたViewのクラスを呼び出せないということらしい。
原因と対策
いままでは外部ライブラリを使うときは、libsフォルダにjarファイルを置いて、
プロジェクトのプロパティからビルドパスの設定でそのjarファイルを選択していた。
Rev.22からはAndroid Private Librariesというパスが新しく作られて
libsフォルダのjarファイルは自動的にそのパスに含まれるようになったそうだ。
だからわざわざjarファイルを個別に設定するとダブってしまうので、jarファイルのパスは除去した。
それでも同じエラーがでて起動はできなかったので、
今度はビルドの順番を変えることにした。
具体的にはAndroid Private LibrariesをAndroidライブラリより上に来るようにした。
つまり、アプリのsrc、アプリのgen、Android Private Librariesという順番にした。
そしたら起動できた!
Androidのライブラリより前にプライベートライブラリを先に呼び出さないと行けないようだ。