9

Tôi có một số vấn đề với thành phần DrawerLayout. Tôi đang sử dụng bình android-support-v4 và khi tôi khởi chạy ứng dụng, tôi có ngoại lệ này:Thành phần Android DrawerLayout

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 

Tôi không hiểu tại sao tôi lại có ngoại lệ này, tôi đã bao gồm bình trong thuộc tính dự án ...

đây là tập tin xml của tôi:

<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> 

Nếu bạn có bất kỳ ý tưởng về nơi là vấn đề, bạn đang chào đón ... Cảm ơn :)

Trả lời

10

Thêm android-suppo rt-v4 vào đường dẫn xây dựng của bạn

+0

Không chính xác điều này, nhưng cảm ơn! :) –

+0

@ user1563059 Vì vậy, chính xác thì nó là gì? – cringe

+1

Tôi khá chắc chắn rằng anh ấy đã sử dụng một phiên bản lỗi thời của thư viện hỗ trợ. – Greeny

0

Tôi gặp sự cố tương tự khi sử dụng Android Studio. Tôi đã có một số phụ thuộc xây dựng, trong số đó có thư viện hỗ trợ-v4. Mọi thứ hoạt động tốt cho đến khi tôi tích hợp DrawerLayout - đó là nơi xảy ra lỗi trên.

Tôi đã giải quyết nó bằng cách xóa thư viện hỗ trợ-v4 khỏi các phụ thuộc. Nó đã được bao gồm bởi một phụ thuộc khác (trong trường hợp của tôi là Facebook SDK), và có vẻ như điều này đã gây ra rắc rối (có thể do các phiên bản khác nhau). Có thể điều này giúp ai đó ở một vị trí tương tự :)

Các vấn đề liên quan