ライブラリ プロジェクトを使用してアプリを作成しました (これも作成し、他のアプリで再利用します)。正常にビルドされますが、インストールして Eclipse (Ctrl+F11) で実行しようとすると、MyLib.apk が見つかりませんでした。コンソールのエラー行:
コンソール出力:
[2013-11-30 14:42:59 - MyApp] ------------------------------
[2013-11-30 14:42:59 - MyApp] Android Launch!
[2013-11-30 14:42:59 - MyApp] adb is running normally.
[2013-11-30 14:42:59 - MyApp] Performing com.sfinja.myapp.ActivitySubClass activity launch
[2013-11-30 14:42:59 - MyApp] Automatic Target Mode: using device '5752068FC64500EA'
[2013-11-30 14:43:00 - MyApp] Application already deployed. No need to reinstall.
[2013-11-30 14:43:00 - MyLib] Could not find MyLib.apk!
[2013-11-30 14:43:00 - MyApp] Starting activity com.sfinja.myapp.ActivitySubClass on device 5752068FC64500EA
[2013-11-30 14:43:00 - MyApp] ActivityManager: Starting: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] cmp=com.sfinja.myapp/.ActivitySubClass }
だから私はSOを検索し、ライブラリプロジェクトのチェックボックスをオフにするだけで問題を解決するこのスレッドを見つけました。Is Library
案の定、ライブラリ プロジェクト (MyLib) でこのチェックボックスがオンになっているので、オフにすると、コンソールでこのエラーが表示されなくなりましたが、ランタイム NullPointerExceptions が発生し始めました。
これは、プロジェクトのセットアップ/構成に問題があることを明確に示唆しています (ビルドは問題ありませんが) が、それが何であるかを見つけるには、この紛らわしいチェックボックスについてもう少し理解する必要があると思います:
- このアプリで使用されている他のライブラリ プロジェクトがあり、すべて
Is Library
チェックボックスがオンになっていますが、MyLib が示す問題はありません。では、「IsLibrary」をチェックするかしないか。 - ライブラリの場合、
Is Library
チェックボックスをオフにする必要があるのはなぜですか? あのスレの2年前の正解は今も通用するの? - APKが見つかりませんでした!本質的に他の何かのための「赤いニシン」ですか?