2013-09-25 45 views
0

我在论坛上看过类似的问题,他们没有帮助解决我的问题。Android SlidingMenu NoClassDef例外

我试图让slidingMenu实现用下面的代码工作:

@Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 

     try{ 
      slidingMenu = new SlidingMenu(this); 
      slidingMenu.setMode(SlidingMenu.LEFT); 
      slidingMenu.setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN); 
      slidingMenu.setShadowWidthRes(R.dimen.slidingmenu_shadow_width); 
      slidingMenu.setShadowDrawable(R.drawable.abs__ab_bottom_solid_dark_holo); 
      slidingMenu.setBehindOffsetRes(R.dimen.slidingmenu_offset); 
      slidingMenu.setFadeDegree(0.35f); 
      slidingMenu.attachToActivity(this, SlidingMenu.SLIDING_CONTENT); 
      slidingMenu.setMenu(R.layout.slidemenu); 

//   if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) { 
//    getActionBar().setDisplayHomeAsUpEnabled(true); 
//   } 
     }catch(Exception e){ 
      Toast.makeText(this, "SlideMenu malfunction!", Toast.LENGTH_LONG).show(); 
     } 

    } 

,但我得到了下面的错误堆栈:

09-25 02:09:23.042: E/AndroidRuntime(7672): FATAL EXCEPTION: main 
09-25 02:09:23.042: E/AndroidRuntime(7672): java.lang.NoClassDefFoundError: android.support.v4.view.ViewConfigurationCompat 
09-25 02:09:23.042: E/AndroidRuntime(7672):  at com.jeremyfeinstein.slidingmenu.lib.CustomViewAbove.initCustomViewAbove(CustomViewAbove.java:167) 
09-25 02:09:23.042: E/AndroidRuntime(7672):  at com.jeremyfeinstein.slidingmenu.lib.CustomViewAbove.<init>(CustomViewAbove.java:157) 
09-25 02:09:23.042: E/AndroidRuntime(7672):  at com.jeremyfeinstein.slidingmenu.lib.CustomViewAbove.<init>(CustomViewAbove.java:152) 
09-25 02:09:23.042: E/AndroidRuntime(7672):  at com.jeremyfeinstein.slidingmenu.lib.SlidingMenu.<init>(SlidingMenu.java:209) 
09-25 02:09:23.042: E/AndroidRuntime(7672):  at com.jeremyfeinstein.slidingmenu.lib.SlidingMenu.<init>(SlidingMenu.java:192) 
09-25 02:09:23.042: E/AndroidRuntime(7672):  at com.jeremyfeinstein.slidingmenu.lib.SlidingMenu.<init>(SlidingMenu.java:171) 
09-25 02:09:23.042: E/AndroidRuntime(7672):  at com.icerge.revivaltimes.MainActivity.onCreate(MainActivity.java:19) 
09-25 02:09:23.042: E/AndroidRuntime(7672):  at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1069) 
09-25 02:09:23.042: E/AndroidRuntime(7672):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2751) 
09-25 02:09:23.042: E/AndroidRuntime(7672):  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2803) 
09-25 02:09:23.042: E/AndroidRuntime(7672):  at android.app.ActivityThread.access$2300(ActivityThread.java:135) 
09-25 02:09:23.042: E/AndroidRuntime(7672):  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2136) 
09-25 02:09:23.042: E/AndroidRuntime(7672):  at android.os.Handler.dispatchMessage(Handler.java:99) 
09-25 02:09:23.042: E/AndroidRuntime(7672):  at android.os.Looper.loop(Looper.java:144) 
09-25 02:09:23.042: E/AndroidRuntime(7672):  at android.app.ActivityThread.main(ActivityThread.java:4937) 
09-25 02:09:23.042: E/AndroidRuntime(7672):  at java.lang.reflect.Method.invokeNative(Native Method) 
09-25 02:09:23.042: E/AndroidRuntime(7672):  at java.lang.reflect.Method.invoke(Method.java:521) 
09-25 02:09:23.042: E/AndroidRuntime(7672):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:858) 
09-25 02:09:23.042: E/AndroidRuntime(7672):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616) 
09-25 02:09:23.042: E/AndroidRuntime(7672):  at dalvik.system.NativeStart.main(Native Method) 

清单:

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
    package="com.icerge.revivaltimes" 
    android:versionCode="1" 
    android:versionName="1.0" > 

    <uses-sdk 
     android:minSdkVersion="8" 
     android:targetSdkVersion="18" /> 

    <application 
     android:allowBackup="true" 
     android:icon="@drawable/ic_launcher" 
     android:label="@string/app_name" 
     android:theme="@style/Theme.Sherlock" > 
     <activity 
      android:name="com.my.project.MainActivity" 
      android:label="@string/app_name" > 
      <intent-filter> 
       <action android:name="android.intent.action.MAIN" /> 

       <category android:name="android.intent.category.LAUNCHER" /> 
      </intent-filter> 
     </activity> 
    </application> 
</manifest> 

UPDATE [构建路径错误消息]:

MotionEventCompat cannot be resolved to a variable CustomViewAbove.java /slidingmenu/src/com/jeremyfeinstein/slidingmenu/lib line 614 Java Problem 
MotionEventCompat cannot be resolved CustomViewAbove.java /slidingmenu/src/com/jeremyfeinstein/slidingmenu/lib line 600 Java Problem 
MotionEventCompat cannot be resolved CustomViewAbove.java /slidingmenu/src/com/jeremyfeinstein/slidingmenu/lib line 632 Java Problem 
MotionEventCompat cannot be resolved CustomViewAbove.java /slidingmenu/src/com/jeremyfeinstein/slidingmenu/lib line 631 Java Problem 
MotionEventCompat cannot be resolved CustomViewAbove.java /slidingmenu/src/com/jeremyfeinstein/slidingmenu/lib line 636 Java Problem 
The constructor SlidingActivityHelper(SlidingFragmentActivity) is undefined SlidingFragmentActivity.java /slidingmenu/src/com/jeremyfeinstein/slidingmenu/lib/app line 21 Java Problem 
MotionEventCompat cannot be resolved CustomViewAbove.java /slidingmenu/src/com/jeremyfeinstein/slidingmenu/lib line 635 Java Problem 
MotionEventCompat cannot be resolved to a variable CustomViewAbove.java /slidingmenu/src/com/jeremyfeinstein/slidingmenu/lib line 681 Java Problem 
MotionEventCompat cannot be resolved to a variable CustomViewAbove.java /slidingmenu/src/com/jeremyfeinstein/slidingmenu/lib line 647 Java Problem 
FragmentActivity cannot be resolved to a type SlidingFragmentActivity.java /slidingmenu/src/com/jeremyfeinstein/slidingmenu/lib/app line 30 Java Problem 
FragmentActivity cannot be resolved to a type SlidingFragmentActivity.java /slidingmenu/src/com/jeremyfeinstein/slidingmenu/lib/app line 11 Java Problem 
MotionEventCompat cannot be resolved CustomViewAbove.java /slidingmenu/src/com/jeremyfeinstein/slidingmenu/lib line 691 Java Problem 
MotionEventCompat cannot be resolved CustomViewAbove.java /slidingmenu/src/com/jeremyfeinstein/slidingmenu/lib line 690 Java Problem 
FragmentActivity cannot be resolved to a type SlidingFragmentActivity.java /slidingmenu/src/com/jeremyfeinstein/slidingmenu/lib/app line 20 Java Problem 
MotionEventCompat cannot be resolved CustomViewAbove.java /slidingmenu/src/com/jeremyfeinstein/slidingmenu/lib line 705 Java Problem 
FragmentActivity cannot be resolved to a type SlidingFragmentActivity.java /slidingmenu/src/com/jeremyfeinstein/slidingmenu/lib/app line 50 Java Problem 
MotionEventCompat cannot be resolved CustomViewAbove.java /slidingmenu/src/com/jeremyfeinstein/slidingmenu/lib line 759 Java Problem 
MotionEventCompat cannot be resolved CustomViewAbove.java /slidingmenu/src/com/jeremyfeinstein/slidingmenu/lib line 760 Java Problem 
FragmentActivity cannot be resolved to a type SlidingFragmentActivity.java /slidingmenu/src/com/jeremyfeinstein/slidingmenu/lib/app line 39 Java Problem 
MotionEventCompat cannot be resolved CustomViewAbove.java /slidingmenu/src/com/jeremyfeinstein/slidingmenu/lib line 736 Java Problem 
MotionEventCompat cannot be resolved to a variable CustomViewAbove.java /slidingmenu/src/com/jeremyfeinstein/slidingmenu/lib line 758 Java Problem 
MotionEventCompat cannot be resolved CustomViewAbove.java /slidingmenu/src/com/jeremyfeinstein/slidingmenu/lib line 769 Java Problem 
FragmentActivity cannot be resolved to a type SlidingFragmentActivity.java /slidingmenu/src/com/jeremyfeinstein/slidingmenu/lib/app line 75 Java Problem 
MotionEventCompat cannot be resolved CustomViewAbove.java /slidingmenu/src/com/jeremyfeinstein/slidingmenu/lib line 780 Java Problem 
MotionEventCompat cannot be resolved CustomViewAbove.java /slidingmenu/src/com/jeremyfeinstein/slidingmenu/lib line 761 Java Problem 
MotionEventCompat cannot be resolved to a variable CustomViewAbove.java /slidingmenu/src/com/jeremyfeinstein/slidingmenu/lib line 764 Java Problem 
MotionEventCompat cannot be resolved CustomViewAbove.java /slidingmenu/src/com/jeremyfeinstein/slidingmenu/lib line 838 Java Problem 
FragmentActivity cannot be resolved to a type SlidingFragmentActivity.java /slidingmenu/src/com/jeremyfeinstein/slidingmenu/lib/app line 149 Java Problem 
MotionEventCompat cannot be resolved CustomViewAbove.java /slidingmenu/src/com/jeremyfeinstein/slidingmenu/lib line 843 Java Problem 
MotionEventCompat cannot be resolved CustomViewAbove.java /slidingmenu/src/com/jeremyfeinstein/slidingmenu/lib line 783 Java Problem 
MotionEventCompat cannot be resolved CustomViewAbove.java /slidingmenu/src/com/jeremyfeinstein/slidingmenu/lib line 837 Java Problem 
KeyEventCompat cannot be resolved CustomViewAbove.java /slidingmenu/src/com/jeremyfeinstein/slidingmenu/lib line 944 Java Problem 
KeyEventCompat cannot be resolved CustomViewAbove.java /slidingmenu/src/com/jeremyfeinstein/slidingmenu/lib line 946 Java Problem 
MotionEventCompat cannot be resolved CustomViewAbove.java /slidingmenu/src/com/jeremyfeinstein/slidingmenu/lib line 844 Java Problem 
+0

粘贴你表现 – Trikaldarshi

+0

后activity_main.xml中 – Emmanuel

回答

3

转到您的slidingMenu库在您的工作空间>Properties>Java Build Path>Order and Export标签>确保android-support-v4检查

清理项目。这应该是固定的。

编辑:刚注意到你有yoru清单中的ActionBar sherlock。在这种情况下,您需要为工作区中的actionbarsherlock库执行相同的步骤。然后,您需要从slidingmenu库中删除android-support-v4。添加滑动菜单作为actionbarsherlock中的Android库依赖项。然后只需将actionbarsherlock作为android库添加到您的应用程序。

enter image description here

自己的项目应该有ActionBarSherlock在自己的属性引用像上面。 ActionbarSherlock应该是libs文件夹中唯一具有android-support-v4.jar的项目。

最后清洁 - 重建

+0

谢谢您的回答。这有助于理解事情,并且我已经将它跟在信上。但是,我得到了很多构建路径错误,这些错误是我粘贴到我原来的问题中的。我的slidingmenu图书馆有一个红色的十字架,而我的项目和actionbarsherlock图书馆有红色的感叹号。你能提供进一步的帮助吗? – sisko

+0

不要担心滑动菜单库和红十字会,它仍然会工作。你只需要去属性> Java构建路径>库为你自己的项目和ActionbarSherlock删除任何有红色标记。这应该解决问题。如果它仍然没有,从ActionbarSherlock中删除android-support-v4.jar,从你自己的机器上安装adt安装(我相信它会在sdk \ extras \ android \ support)中获取最新版本并将其复制到ActionbarSherlock的libs文件夹。确保“属性”>“Java构建路径”>“库”中没有红色标记 – nedaRM