2

非同期ネットワーク呼び出しに RoboSpice を使用する Android アプリケーションを作成しています。私は RoboSpice の経験はありませんが、RoboSpice を選択しました。RoboSpice はインターネット上で最高のツールの 1 つと見なされており、JSON を POJO に自動的に変換できるからです。残念ながら、RoboSpice のドキュメントの質は少し悪いです。したがって、私の質問:

RoboSpice を使用して、REST GET メソッドへのネットワーク呼び出しを行い、JSON を POJO に自動的に解析し、取得したオブジェクトのリストを Android ViewPager に表示することに成功しました。これを行うためにJackson2GoogleHttpClientSpiceServiceを使用しています。さて、この ViewPager では画像も表示しています。もちろん、RoboSpice を使用してこの画像をダウンロードしたいと考えています。RoboSpice の例(OkHttpBitmapSpiceManager を使用して画像をダウンロードする)の 1 つをガイドとして使用し、それに従って、次の行をアクティビティに追加しました。

private OkHttpBitmapSpiceManager spiceManagerBinary = new OkHttpBitmapSpiceManager();

また、マニフェストに次の行を追加しました。

<service
        android:name="com.octo.android.robospice.spicelist.okhttp.OkHttpBitmapSpiceService"
        android:exported="false" />

今、私は自分の Android プロジェクトに maven を使用していないので、次の jar をプロジェクトに追加する必要がありました: robospice-ui-spicelist-1.4.9.jar (明らかに、Jackson2GoogleHttpClientSpiceService、動作します)。

問題は、アプリケーションが起動さえしないことです。new OkHttpBitmapSpiceManager()アプリケーションを含む行を削除 (またはコメント) するたびに、問題なく動作します。したがって、明らかにコンストラクターを呼び出すと、アプリケーションがクラッシュします。logcat から次のエラーが表示されます。

java.lang.NoClassDefFoundError: com.octo.android.robospice.spicelist.okhttp.OkHttpBitmapSpiceService

私には、このエラーはjarの欠落などに関連しているようです。しかし、ドキュメントに従って、必要なすべてのjarファイルを追加しました。RoboSpice の経験がある人は、私がここで間違っていることを説明できますか? さらにjarを追加する必要がありますか、それとも他に何か不足していますか? それとも、RoboSpice を使用して URL から画像を読み込むために、まったく別のアプローチを使用する必要がありますか?


編集!

より明確にするために、次の jar を libs フォルダーとビルド パスに追加しました。

  • commons-io-1.3.2.jar
  • commons-lang3-3.1.jar
  • google-http-client-1.17.0-rc.jar
  • google-http-client-android-1.17.0-rc.jar
  • google-http-client-jackson2-1.17.0-rc.jar
  • グアバ-jdk5-13.0.jar
  • jackson-core-2.1.3.jar
  • jsr305-1.3.9.jar
  • ロボスパイス-1.4.9.jar
  • ロボスパイス-キャッシュ-1.4.9.jar
  • robospice-google-http-client-1.4.9.jar
  • robospice-ui-spicelist-1.4.9.jar
4

1 に答える 1

2

問題は、サービス クラス : を含む jar を使用していないことですcom.octo.android.robospice.spicelist.okhttp.OkHttpBitmapSpiceService

robospice-ui-spice-list には含まれていませんが、 robospice-okhttp には含まれています。この jar を含めると、必要なサービスが得られます。

このサンプルを見てください。

また、画像をダウンロードするには、okhttp に関連しないクラスを使用する方が簡単です。RS は、そのコア パッケージで単純なバイナリ リクエストを提供します。

ああ、ところで、「RS ドキュメントは少し貧弱だ」と言うときは、github またはメーリング リストを介して、より完全なものを希望する方法を教えてください。ドキュメントのみでも、プルリクエストも受け付けています。

于 2013-11-12T06:01:33.490 に答える