8

ここからダウンロードしたグアバライブラリを使用すると、現在 java.lang.NoClassDefFoundError: com.google.common.collect.HashBiMap の問題に直面しています: http://code.google.com/p/guava-libraries/

すでに guava-12.0.jar を参照ライブラリとしてプロジェクトに追加していますが、それでもエラーが発生します。どのような問題が発生するかについてアドバイスをいただけますか。ご協力ありがとうございました

package my.project;

import android.app.Activity;
import android.os.Bundle;

import com.google.common.collect.BiMap;
import com.google.common.collect.HashBiMap;

public class MainActivity extends Activity{

     private BiMap<String,String>  bidiMap; 

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);     
          setContentView(R.layout.bible_help_cal);

        bidiMap = HashBiMap.create();           
        bidiMap.put("a","100");
        bidiMap.put("b","200");


    }


}

表示されるエラー メッセージ

05-29 18:35:19.737: E/AndroidRuntime(376): FATAL EXCEPTION: main
05-29 18:35:19.737: E/AndroidRuntime(376): java.lang.NoClassDefFoundError: com.google.common.collect.HashBiMap
05-29 18:35:19.737: E/AndroidRuntime(376):  at my.project.MainActivity.onCreate(MainActivity.java:18)
05-29 18:35:19.737: E/AndroidRuntime(376):  at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1048)
05-29 18:35:19.737: E/AndroidRuntime(376):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1712)
05-29 18:35:19.737: E/AndroidRuntime(376):  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1764)
05-29 18:35:19.737: E/AndroidRuntime(376):  at android.app.ActivityThread.access$1500(ActivityThread.java:122)
05-29 18:35:19.737: E/AndroidRuntime(376):  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1002)
05-29 18:35:19.737: E/AndroidRuntime(376):  at android.os.Handler.dispatchMessage(Handler.java:99)
05-29 18:35:19.737: E/AndroidRuntime(376):  at android.os.Looper.loop(Looper.java:132)
05-29 18:35:19.737: E/AndroidRuntime(376):  at android.app.ActivityThread.main(ActivityThread.java:4025)
05-29 18:35:19.737: E/AndroidRuntime(376):  at java.lang.reflect.Method.invokeNative(Native Method)
05-29 18:35:19.737: E/AndroidRuntime(376):  at java.lang.reflect.Method.invoke(Method.java:491)
05-29 18:35:19.737: E/AndroidRuntime(376):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:841)
05-29 18:35:19.737: E/AndroidRuntime(376):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:599)
05-29 18:35:19.737: E/AndroidRuntime(376):  at dalvik.system.NativeStart.main(Native Method)
4

5 に答える 5

12

このエラーは、クラスがコンパイル時に使用可能であったが、実行時に見つからないことを意味します。最も一般的なのは、コンパイル時のクラスパスが実行時のクラスパスと異なる場合です。

実行時のクラスパスにグアバ jar が含まれていない可能性が非常に高いです。これを確認するには、コードにクラスパスを出力してみてください。

コマンドラインでは、次を使用できます: java -cp "path/to/guava.jar" MyMainClass

または、jar を含めるように CLASSPATH 環境変数を設定します。

于 2012-05-29T18:49:39.493 に答える
2

私の場合、ライブラリにグアバと google-collection の両方がありました。google-collection ライブラリが guava ライブラリと競合していました。guava と google-collection の両方がある場合は、google-collection を削除して再構築してみてください。

于 2014-04-25T16:13:55.867 に答える