02-18 00:02:08.432: ERROR/PackageManager(57): Package com.example.brown requires unavailable shared library com.google.android.maps; failing!
logcat でこの例外が発生しました。
誰でも私を案内できますか?
02-18 00:02:08.432: ERROR/PackageManager(57): Package com.example.brown requires unavailable shared library com.google.android.maps; failing!
logcat でこの例外が発生しました。
誰でも私を案内できますか?
CommonsWare が言ったように、エミュレータにはライブラリがありません。Google マップ ライブラリのドキュメントの概要ページには、エミュレータに適した種類の仮想デバイスを作成する方法に関する情報が含まれています。要点は次のとおりです。
オプションなしで android コマンドを使用して、AVD Manager を起動します。Eclipse/ADT で開発している場合は、[ウィンドウ] > [Android SDK および AVD マネージャー] からツールにアクセスすることもできます。
- [新規] ボタンをクリックして、新しい AVD の作成を開始します。
- 表示されるダイアログで、AVD の名前を指定し、AVD で使用するシステム イメージ ターゲットを選択します。上記のように、「Google API (Google Inc.)」ターゲットの 1 つを選択し、API レベルがアプリケーションのマニフェストの android:minSdkVersion 属性と一致するバージョンを選択してください。
- 他のオプションを構成し、[Create AVD] をクリックします。
AVD の作成が完了したら、AVD Manager UI から実行するか、エミュレーターのコマンドライン インターフェイスを使用できます。Eclipse で開発している場合は、実行構成を構成して AVD を開始し、そこにアプリケーションをインストールできます。
AVD の詳細については、Android デベロッパー サイトのAndroid Virtual Devicesを参照してください。
このエラーは、他の回答のような AVD ではなく、実際のデバイスで発生しました。私の場合、Google マップがインストールされていないカスタム ROM を搭載した Nexus S で実行していました。
com.google.android.maps 共有ライブラリが ROM 自体にバンドルされており、APK の一部としてバンドルされていないことを他の場所で読みました。
したがって、私にとっての解決策は、Google マップがインストールされているストック ROM に戻すことでした。
ところで、このスレッドのタイトルは、DDMS LogCat で見つかったエラーを指しています。ほとんどのユーザーが (LogCat をチェックする前に) 最初に目にするエラーは、Eclipse のコンソールにあります。
Installation error: INSTALL_FAILED_MISSING_SHARED_LIBRARY
Please check logcat output for more details.
エミュレータにGoogleAPIがありません。Google APIを含む新しいAVDを作成すると、このエラーは解消されます。
jfritz42として、カスタムROM(Cyanogenmod)を備えた実際のデバイスでこのエラーが発生しました。このエラーは、 Google Apps パッケージをインストールしなかったことが原因で発生しました。このパッケージには、私を悩ませるアプリがたくさん含まれているためです。ただし、このパッケージに含まれる 19 個の Google Apps でシステムを大量に消費せずに google.maps ライブラリをインストールする方法があります。パッケージ (zip ファイル) をダウンロードし、この zip 内の system/app からすべての .apk ファイルを削除するだけです。その後、ROM マネージャーまたはリカバリ モードを使用して、zip をインストールできます。次に、マップ ライブラリをシステムにインストールする必要があります。このパッケージに含まれる Google Apps (マップ アプリなど) は、後で個別にインストールできます。
実際のデバイスの場合は、マニフェスト ファイルから削除してみてください。
<uses-library android:name="com.google.android.maps" />
fiXedd (上記参照) は正しいです。
すでに作成したデバイスを編集したり、新しいデバイスを作成したりできます。この種類のバージョン ターゲットを選択する代わりに、AVD Manager 内でデバイスを作成または編集する場合:
Android xxx - API レベル x
代わりにこの種類を使用してください。
Google API (Google Inc.) - API レベル x
AVD が適切にセットアップされ、正常に動作した後に、このエラーが発生しました。AVD はまだ Google API を使用しており、Eclipse のマップ ライブラリへの参照を確認できました。これを解決する唯一の方法は、fiXedd のアドバイスに従って、AVD を削除して新しいものを作成することでした。