Android DrawerLayout组件

我有一些DrawerLayout组件的问题。 我正在使用android-support-v4 jar,当我启动应用程序时,我有这个例外:

05-19 01:33:57.402: E/AndroidRuntime(3120): FATAL EXCEPTION: main 05-19 01:33:57.402: E/AndroidRuntime(3120): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.dimosphere.app/com.dimosphere.app.MainActivity}: android.view.InflateException: Binary XML file line #1: Error inflating class android.support.v4.widget.DrawerLayout 05-19 01:33:57.402: E/AndroidRuntime(3120): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2307) 05-19 01:33:57.402: E/AndroidRuntime(3120): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2357) 05-19 01:33:57.402: E/AndroidRuntime(3120): at android.app.ActivityThread.access$600(ActivityThread.java:153) 05-19 01:33:57.402: E/AndroidRuntime(3120): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1247) 05-19 01:33:57.402: E/AndroidRuntime(3120): at android.os.Handler.dispatchMessage(Handler.java:99) 05-19 01:33:57.402: E/AndroidRuntime(3120): at android.os.Looper.loop(Looper.java:137) 05-19 01:33:57.402: E/AndroidRuntime(3120): at android.app.ActivityThread.main(ActivityThread.java:5226) 05-19 01:33:57.402: E/AndroidRuntime(3120): at java.lang.reflect.Method.invokeNative(Native Method) 05-19 01:33:57.402: E/AndroidRuntime(3120): at java.lang.reflect.Method.invoke(Method.java:511) 05-19 01:33:57.402: E/AndroidRuntime(3120): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:795) 05-19 01:33:57.402: E/AndroidRuntime(3120): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:562) 05-19 01:33:57.402: E/AndroidRuntime(3120): at dalvik.system.NativeStart.main(Native Method) 05-19 01:33:57.402: E/AndroidRuntime(3120): Caused by: android.view.InflateException: Binary XML file line #1: Error inflating class android.support.v4.widget.DrawerLayout 05-19 01:33:57.402: E/AndroidRuntime(3120): at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:698) 05-19 01:33:57.402: E/AndroidRuntime(3120): at android.view.LayoutInflater.inflate(LayoutInflater.java:466) 05-19 01:33:57.402: E/AndroidRuntime(3120): at android.view.LayoutInflater.inflate(LayoutInflater.java:396) 05-19 01:33:57.402: E/AndroidRuntime(3120): at android.view.LayoutInflater.inflate(LayoutInflater.java:352) 05-19 01:33:57.402: E/AndroidRuntime(3120): at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:323) 05-19 01:33:57.402: E/AndroidRuntime(3120): at android.app.Activity.setContentView(Activity.java:1881) 05-19 01:33:57.402: E/AndroidRuntime(3120): at com.dimosphere.app.MainActivity.onCreate(MainActivity.java:12) 05-19 01:33:57.402: E/AndroidRuntime(3120): at android.app.Activity.performCreate(Activity.java:5104) 05-19 01:33:57.402: E/AndroidRuntime(3120): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1080) 05-19 01:33:57.402: E/AndroidRuntime(3120): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2261) 05-19 01:33:57.402: E/AndroidRuntime(3120): ... 11 more 05-19 01:33:57.402: E/AndroidRuntime(3120): Caused by: java.lang.ClassNotFoundException: Didn't find class "android.support.v4.widget.DrawerLayout" on path: /data/app/com.dimosphere.app-2.apk 05-19 01:33:57.402: E/AndroidRuntime(3120): at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:65) 05-19 01:33:57.402: E/AndroidRuntime(3120): at java.lang.ClassLoader.loadClass(ClassLoader.java:501) 05-19 01:33:57.402: E/AndroidRuntime(3120): at java.lang.ClassLoader.loadClass(ClassLoader.java:461) 05-19 01:33:57.402: E/AndroidRuntime(3120): at android.view.LayoutInflater.createView(LayoutInflater.java:552) 05-19 01:33:57.402: E/AndroidRuntime(3120): at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:687) 05-19 01:33:57.402: E/AndroidRuntime(3120): ... 20 more 

我不明白为什么我有这个exception,我包括在项目属性的jar …

这是我的XML文件:

 <android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/drawer_layout" android:layout_width="match_parent" android:layout_height="match_parent"> <!-- The main content view --> <FrameLayout android:id="@+id/content_frame" android:layout_width="match_parent" android:layout_height="match_parent" /> <!-- The navigation drawer --> <ListView android:id="@+id/left_drawer" android:layout_width="240dp" android:layout_height="match_parent" android:layout_gravity="start" android:choiceMode="singleChoice" android:divider="@android:color/transparent" android:dividerHeight="0dp" android:background="#111"/> </android.support.v4.widget.DrawerLayout> 

如果你有什么想法是什么问题,欢迎…谢谢:)

Solutions Collecting From Web of "Android DrawerLayout组件"

将android-support-v4添加到您的构buildpath

我使用Android Studio时遇到同样的问题。 我有一些构build依赖,其中包括support-v4库。 一切运行良好,直到我整合了DrawerLayout – 这是上述错误发生的地方。

我解决它只需从依赖关系中删除support-v4库。 它已经被另一个依赖项(在我的情况下,Facebook的SDK),这似乎是造成麻烦(也许是由于不同的版本)。 也许这有助于某个处于类似位置的人:)