web-dev-qa-db-ja.com

.jarライブラリを参照するときにスーパークラスエラーを解決できない

  1. Androidプロジェクトを作成して実行しました。正常に実行されました。
  2. JavaでWebサービスを開発し、ホストしました。正常に実行されました。
  3. Webサービスを.jarにエクスポートし、Androidプロジェクトに追加しました。
  4. Webサービスでメソッドを呼び出そうとすると、Unable to resolve superclassエラー。

私のエラーログ:

Unable to resolve superclass of Lweb/service/RandomWordGeneratorService; (73)
Link of class 'Lweb/service/RandomWordGeneratorService;' failed 
Could not find class 'web.service.RandomWordGeneratorService',
    referenced from method tam.miru.Login$1.onClick
VFY: unable to resolve new-instance 110 Lweb/service/RandomWordGeneratorService;)
    in Ltam/miru/Login$1; 
VFY: replacing opcode 0x22 at 0x005a    
VFY: dead code 0x005c-006e in Ltam/miru/Login$1;.onClick (Landroid/view/View;)
31
sakthi

ADT 17へのアップグレード後にこの問題が発生し始めました。

外部.jarファイルは 'libs'(s付き)フォルダーにある必要があることを発見しました。そうでない場合、作成された.dexファイルにそれらのクラスは含まれません。アップグレードの前に、「lib」フォルダー内の.jarファイル(sなし)ですべてが正常に機能しました。

71
rabidgremlin

私の場合、Properties->Java Build Path->Order and ExportとチェックAndroid Private Libraries、その後、プロジェクトをクリーンアップして正常に動作しました。

14
Leonardo Pinto

Libフォルダーを作成します。libsフォルダーはネイティブライブラリ用です。私はそれを作り、ライブラリをlibに追加し、パスを内部ライブラリとしてビルドしました。

4
42n4

Eclipseを使用していますか?その場合、 ライブラリ/ JARをEclipseに追加するAndroidプロジェクト

2

これは本当に古いスレッドの投稿であることは知っていますが、@ rabidgremlinの回答を読んだ後、フォルダー構造を確認しましたが、既に "libs"にあることがわかりました。ただし、support.jarを見ると、これを使用すると問題が発生することがわかりました。

私は「FragmentActivity」を拡張していましたが、それは問題があったsupport.jarを参照していたことが判明しました。 extends節を削除すると、アプリは奇跡的にクラッシュを停止しました。

誰かが見に来た場合の参考にしてください。乾杯!

2
Sreedevi J

同じエラーメッセージが表示されました。問題を理解するのに時間がかかりました:Android require Java 1.6が動作します。そして、私のアクティビティのスーパークラスは、Java Java 1.7をコンパイラとして使用したプロジェクト。デックスビルダーがスーパークラスをリンクできず、クラスが見つからないという例外が発生するのに十分でした。

同じ問題がありました。Android Order and Exportの下のプライベートライブラリをマークしようとしましたが、うまくいきませんでした。その後、libsフォルダーが= Java Build Path。だから私はちょうどそれをライブラリに追加し、それが働いた。

1
DenninDalke