1

非常に奇妙なエラー。Androidアプリケーション内の非アクティビティクラスに単純なインターフェイスを実装しようとしています。ただし、実行時エラーが発生します。実装を削除すると、コードは正常に機能します。私はコードにそれ自体を語らせます、気軽にチャイムを鳴らしてください。ありがとう!

これにより、グローバルのインスタンスをインスタンス化するときにClassNotFoundExceptionがスローされます

public class Globals implements IReceivable {

private volatile static Globals uniqueGlobal;
private static ClientSocket clientSocket;

private Globals()
{

}

public static Globals getInstance() {
    synchronized (Globals.class) {

        if (uniqueGlobal == null) {
            uniqueGlobal = new Globals();
            uniqueGlobal.InitializeClient();
        }
    }

    return uniqueGlobal;
}
@Override
public void MessageReceived(UUID clientId, String message) {
    // TODO Auto-generated method stub

}

}

削除すると、すべて正常に動作します

public class Globals  {

private volatile static Globals uniqueGlobal;
private static ClientSocket clientSocket;

private Globals()
{

}

public static Globals getInstance() {
    synchronized (Globals.class) {

        if (uniqueGlobal == null) {
            uniqueGlobal = new Globals();
            uniqueGlobal.InitializeClient();
        }
    }

    return uniqueGlobal;
}

}

編集

これがIReceivableインターフェースです

public interface IReceivable {

public void MessageReceived(UUID clientId, String message);

}

そして正確なエラー:

12-02 10:14:15.859:E / AndroidRuntime(546):java.lang.NoClassDefFoundError:com.example.utilities.Globals

エラーをスローしている行は次のようになります。

 Globals global = Globals.getInstance();
4

1 に答える 1

0

わかりました、問題を解決しました。私があなたに言わなかったのは、私がプロジェクトに追加した jar ファイル内にインターフェースがあるということです。

jar ファイルをプロジェクトに追加し、それをビルド パスに正しく含めましたが、jar ファイルを「libs」フォルダーに追加しませんでした。どうやら、実行時のAndroidには、このフォルダー内にあるjarファイルのみが含まれます。

私にとって良い学習経験。ありがとう!

于 2012-12-03T17:31:47.413 に答える