私は Eclipse と Java に比較的慣れていないため、用語の間違いはご容赦ください。
外部 API (Amazon Web Service API) を実装する Android アプリを作成しています。ダウンロードした API ファイルには、.class ファイルを含むディレクトリと .java ファイルを含むディレクトリが含まれます。
これらを依存関係として追加する際に、次のことを行いました。
Eclipse->プロジェクト プロパティ->java ビルド パス->ソース->リンク ソース->.java ファイルを含むディレクトリを選択します。
Eclipse->プロジェクト プロパティ->java ビルド パス->ライブラリ->外部クラス フォルダーの追加->.class ファイルを含むディレクトリを選択します。
この構成でコンパイルすると、次のエラーが発生します。
java.lang.IllegalArgumentException: already added: Lcom/ECS/client/jax/VariationSummary;
Conversion to Dalvik format failed with error 1
このエラーは、クラス ファイルごとに 1 回繰り返されます。
これをトラブルシューティングするために、外部クラス フォルダーへの参照を削除すると、プログラムがコンパイルされて実行されます。ただし、API のメソッドの 1 つを使用するコード セグメントに到達すると、次のエラーでクラッシュします。
01-15 15:29:20.756: E/AndroidRuntime(1038): java.lang.NoClassDefFoundError: com.ECS.client.jax.AWSECommerceService
編集
完全なスタック トレース:
01-15 17:12:28.256: W/dalvikvm(1227): Unable to resolve superclass of Lcom/ECS/client/jax/AWSECommerceService; (365)
01-15 17:12:28.296: W/dalvikvm(1227): Link of class 'Lcom/ECS/client/jax/AWSECommerceService;' failed
01-15 17:12:28.296: E/dalvikvm(1227): Could not find class 'com.ECS.client.jax.AWSECommerceService', referenced from method com.giftme.Amazon.searchRequest
01-15 17:12:28.296: W/dalvikvm(1227): VFY: unable to resolve new-instance 66 (Lcom/ECS/client/jax/AWSECommerceService;) in Lcom/giftme/Amazon;
01-15 17:12:28.306: D/dalvikvm(1227): VFY: replacing opcode 0x22 at 0x0000
01-15 17:12:28.306: D/dalvikvm(1227): VFY: dead code 0x0002-0033 in Lcom/giftme/Amazon;.searchRequest (Ljava/lang/String;)Z
01-15 17:12:28.306: W/dalvikvm(1227): threadid=10: thread exiting with uncaught exception (group=0x40015560)
01-15 17:12:28.306: E/AndroidRuntime(1227): FATAL EXCEPTION: Thread-13
01-15 17:12:28.306: E/AndroidRuntime(1227): java.lang.NoClassDefFoundError: com.ECS.client.jax.AWSECommerceService
01-15 17:12:28.306: E/AndroidRuntime(1227): at com.giftme.Amazon.searchRequest(Amazon.java:21)
01-15 17:12:28.306: E/AndroidRuntime(1227): at com.giftme.Friend$InterestsRequestListener$4.parseDataAndSearch(Friend.java:359)
01-15 17:12:28.306: E/AndroidRuntime(1227): at com.giftme.Friend$InterestsRequestListener$4.run(Friend.java:329)
01-15 17:12:28.306: E/AndroidRuntime(1227): at java.lang.Thread.run(Thread.java:1019)
そして、これが参照している21行目です:
AWSECommerceService service = new AWSECommerceService();