- プラットフォーム: MonoDroid v4.2.4
- IDE: ビジュアル スタジオ 2012
- 最小 SDK バージョン: API 12
Android.Support.v4.Content 名前空間に含まれる LocalBroadcastManager クラスを利用しようとすると、実行時に問題が発生します。私の IDE では、参照を明示的に追加し、名前空間/クラスのスコープを適切に設定することができ、いくつかのコードを記述した後、期待どおりにコンパイルされます。ただし、アプリケーションのデプロイと起動時に、「NoClassDefFoundError: android/support/v4/content/LocalBroadcastManager」というエラーが表示されます。
ランタイム エラーを発生させるコードを次に示します (DSC_Discconected_From_Device は、BroadcastReceiver を継承するクラスです)。最終行で実行を停止します。
IntentFilter filter = new IntentFilter(UsbManager.ActionUsbDeviceDetached);
DSC_Disconnected_From_Device Receiver = new DSC_Disconnected_From_Device();
LocalBroadcastManager.GetInstance(this).RegisterReceiver(Receiver, filter);
SDK マネージャーの下に、すべての API パッケージがインストールされ、extras の下の「サポート ライブラリ」パッケージもインストールされます。
クラスの定義をどこで探していますか? おそらく、ソースの LocalBroadcastManager.java を android-sdk フレームワーク内の「見える」パスにコピーしたと思われます。例: ..\android-sdk\extras\android\support\v4\src\honeycomb\android\support\v4\content\LocalBroadcastManager.java
アイデア?
編集:私のプロジェクトは、私のプロジェクトのルートにあるフォルダー「libs」にあるサポート ライブラリ android-support-v4 を既に参照していることを忘れていました。ディレクトリを作成し、Visual Studio から追加する必要がありました。