Android SDKアップデート後、アプリケーションはビルドできるが実行時に異常終了してしまう - Android

Android SDKアップデート後、アプリケーションはビルドできるがビルドしたアプリケーションを実行すると異常終了してしまう現象が発生することがあります。
原因は複数ありますが、大きな原因の一つにjarライブラリのエクスポートに関する仕様変更があります。

原因

仕様変更により、jarファイルのエクスポートを明示的に指定しないとエクスポートされない動作になりました。
http://tools.android.com/recent/dealingwithdependenciesinandroidprojects
の変更点で

Important: If you are still referencing jar libraries manually instead of putting them under libs/ be aware of the following:
  • If the project is a Library project, these jar libraries will not be automatically visible to application projects. You should really move these to libs/
  • If the project is an application, this can work but you must make sure to mark the jar files as exported.
という記載があります。

対策

以下の対策があります

jarファイルを libsディレクトリへ移動させる

アプリケーションで参照しているjarファイルをlibsディレクトリへ移動させます。libsディレクトリに配置されたjarファイルは自動でエクスポートされます。
配置変更後、アプリケーションをリビルドします。

jarファイルを明示的にエクスポートする

Pakcage Explorerでプロジェクトを選択し右クリックポップアップメニューの[Properties]メニューを選択しプロジェクトの設定ダイアログを開きます。左側のビューの[Java Build Path]を選択します。右側の画面が"Java Build Path"の画面に切り替わりますので、右エリアの上部のタブから[Order and Export]タブをクリックして選択します。
プロジェクトから参照しているjarファイルが表示されますが、いくつかチェックが外れています。


アプリケーションから利用するライブラリにチェックをつけ明示的にエクスポートの設定をします。


設定後アプリケーションをリビルドします。
これらの対策をすることでエラーを回避できる場合があります。

著者
iPentecのプログラマー、最近はAIの積極的な活用にも取り組み中。
とっても恥ずかしがり。
掲載日: 2012-04-15
iPentec all rights reserverd.