我在使用新版本的SherlockActionBar时遇到错误。当我从快照运行时没有问题。更新到4.0,它现在抛出一个NoClassDefFoundError。我正在编译Android 4.0,将库从maven repo中拉下来。
以下是有问题的代码:
getSupportActionBar().setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
ActionBar.Tab tab = getSupportActionBar().newTab();
tab.setText("Today");
tab.setTabListener(this);
tab.setCustomView(new DatePairView(this, new DateTime()));
getSupportActionBar().addTab(tab);
这是logcat输出:
03-08 20:35:05.633: ERROR/AndroidRuntime(10976): FATAL EXCEPTION: main
java.lang.NoClassDefFoundError: com.actionbarsherlock.app.SherlockFragmentActivity
at com.actionbarsherlock.internal.app.ActionBarImpl.selectTab(ActionBarImpl.java:509)
at com.actionbarsherlock.internal.app.ActionBarImpl.addTab(ActionBarImpl.java:452)
at com.actionbarsherlock.internal.app.ActionBarImpl.addTab(ActionBarImpl.java:438)
at com.kopysoft.chronos.activities.ClockActivity.onCreate(ClockActivity.java:88)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1611)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1663)
at android.app.ActivityThread.access$1500(ActivityThread.java:117)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:931)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:130)
at android.app.ActivityThread.main(ActivityThread.java:3683)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:507)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
at dalvik.system.NativeStart.main(Native Method)
03-08 20:35:05.633: WARN/ActivityManager(96): Force finishing activity com.kopysoft.chronos/.activities.ClockActivity
03-08 20:35:06.133: WARN/ActivityManager(96): Activity pause timeout for HistoryRecord{407fef58 com.kopysoft.chronos/.activities.ClockActivity}
03-08 20:35:16.303: WARN/ActivityManager(96): Activity destroy timeout for HistoryRecord{407fef58 com.kopysoft.chronos/.activities.ClockActivity}
感谢您的帮助!
修改1 更新了引用git中的静态条目与最新的条目。
答案 0 :(得分:1)
该异常通常意味着您在CLASSPATH中缺少JAR。它在一个上下文中运行的事实可能会让你沉睡,认为你正在做正确的事情,但如果你相信编译器告诉你的话,你会更快地找到解决方案。
找到容纳该类的JAR,并找出如何将其引入CLASSPATH。重复,直到错误消失。