Guava:java.lang.NoClassDefFoundError – com.google.common.collect.HashBiMap

我目前面临的问题java.lang.NoClassDefFoundError:com.google.common.collect.HashBiMap使用从这里下载的番石榴图书馆: http : //code.google.com/p/guava-libraries/

我已经添加guava-12.0.jar到我的项目作为参考库,但我仍然得到错误。 你可否就这个问题提出一些build议? 感谢您的帮助

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) 

  • 在一个语句中一次添加多个条目到一个HashMap
  • 如何将Hashmap存储到android,以便在使用共享首选项重新启动应用程序时重用它?
  • SparseArray,检查密钥是否存在
  • 如何获取存储在ArrayList中的值<HashMap <key,value >>?
  • 具有弱值的HashMap
  • HashMap到ListView
  • HashMap到ListView
  • 是否有可能创build一个Android上的Parcelable的HashMap?
  • 这个错误意味着这个类在编译时是可用的,但在运行时不能find。 当编译时类path与运行时类path不同时,通常会发生这种情况。

    你的运行时类path很可能不包含guava jar。 要validation这一点,请尝试在您的代码中打印您的类path 。

    在命令行中,可以使用:java -cp“path / to / guava.jar”MyMainClass

    或者,也可以将CLASSPATH环境variables设置为包含jar。

    就我而言,我的图书馆里既有番石榴又有谷歌collections。 谷歌collections库与番石榴库冲突。 如果你有番石榴和谷歌收集,尝试删除谷歌收集重build。

    只需从这里番石榴下载番石榴图书馆

    清洁和build设。 为我工作。 希望能帮助到你。 干杯

    在我的情况下,我尝试添加guava-17.0.jar与选项Add External JARs...是问题 。 当我移动我的项目文件夹中的guava-17.0.jar (在Libs文件下),我没有问题。

    当然,我删除了外部JAR并使用Add JARs...选项再次添加它