2013-02-08 5 views
30

私はlibGDXプロジェクトに取り組んでいます。イベントリスナーである別のインラインクラスを持つCheerVArachnidsというクラスがあります。このプロジェクトをデスクトップ上で実行すると、正常に動作します。私は私のAndroidデバイス上で実行するときには、そのインラインクラスを見つけることができないと私は次のエラーを取得する:任意のアイデアは、なぜメソッドXXXから参照されるクラスXXXを見つけることができませんでした。 <YYY>

package com.bbj.cva; 

public class CheerVArachnids implements ApplicationListener { 

    class PlaceUnitListener implements EventSubscriber<PlaceUnitEvent> { 

     @Override 
     public void onEvent(PlaceUnitEvent event) 
     { 
      // 
     } 
    } 

    public CheerVArachnids() { 

     EventBus.subscribe(PlaceUnitEvent.class, new PlaceUnitListener()); 
     EventBus.subscribe(RemoveScreenObjectEvent.class, 
       new RemoveScreenObjectListener()); 
    } 
} 

:ここ

Could not find class 'com.bbj.cva.CheerVArachnids$PlaceUnitListener', referenced from method com.bbj.cva.CheerVArachnids.<init> 

は私のクラスの重要な部分ですAndroidでは、実行時にインラインクラスを見つけることができません。

+0

残りの例外メッセージは何ですか?私は実際にPlaceUnitListenerのスーパークラスに問題があると思っています(CodeNoobの答えが当てはまります)。 「EventSubscriber <>」とは何ですか? –

答えて

46

ADTバージョンによっては、エクスポートするライブラリ/プロジェクトも設定する必要があります。

Project Proplertes - > Java Build Path - > Order and Export - >使用しているソースと他のライブラリを確認してください。

Core-およびAndroid-Projectのエクスポート設定を行います。

Androidでは問題なく動作します。

+0

これは外部ライブラリであれば意味がありますが、これは正しいインラインで定義されたクラスです。したがって、外部プロジェクトの依存関係はありません。 PlaceUnitListenerがコンストラクタの上にどのように宣言されているかを見てください。 –

+1

これらのエラーは非常に頻繁に発生し、メッセージが間違っていることがよくあります。ここでは、実装すべきInterface/Classを見つけることができませんでした。ちょっと説明できますが、どこからEventSubscriberを取得しますか?これは外部の図書館のものですか? – CodeNoob

+1

あなたは正しいです。それはそれだった。ありがとうCodeNoob。 –

12

私のケースでは、SDKとEclipseの新しいアップデートをインストールするまで、すべて正常に機能しました。

私はエラーを得た:「クラスが見つかりませんでした...」

私は別のstackoverflowのサイトで解決策を見つけました。

I have a similar problem when using external jar (in my case openCSV). The reason I had a problem was due to a change in ADT 17 (or above). What I needed to do to resolve the problem was In Eclipse go to Properties -> Java build path -> Order and export. Mark my jar. Move jar to top of the list. The solution was found in the following page which reference to a very good article.

+7

jarファイルをリストの先頭に移動した場合にのみ動作します。大変ありがとう@syp_dino! – UmbySlipKnot

+0

@UmbySlipKnot:あなたの歓迎です。 –

0

まずすべき:輸入XXX(クラス)の.java、 あなたは外部ライブラリのjarファイルを追加した場合LIBフォルダにインポートします。 それ以降: プロジェクト - >プロパティ - > Javaビルドパス - >オーダーとエクスポート(タブ) - >すべてを選択 - > OK - >プロジェクトのクリーンアップを右クリックします。

この問題がこれで解決します。

関連する問題