9

DrawerLayout 구성 요소에 문제가 있습니다. 나는 안드로이드 지원-V4 항아리를 사용하고 있는데 내가 응용 프로그램을 실행하고있을 때 나는이 예외가 :이 예외가 왜 이해가 안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 

을, 나는 프로젝트 속성에서 항아리를 포함 당신은 문제가있는 위치에 대한 어떤 생각이있는 경우

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

, 당신이있어 환영 ... 감사합니다 :)

답변

10

안드로이드-suppo 추가 : ... 여기

내 XML 파일입니다 rt-v4를 빌드 경로에 연결

+0

이것은 정확하게는 아니지만 감사합니다! :) –

+0

@ user1563059 그래서 정확히 무엇 이었습니까? – cringe

+1

저는 그가 구식 버전의 지원 라이브러리를 사용했다고 확신합니다. – Greeny

0

Android Studio를 사용할 때도 동일한 문제가있었습니다. 빌드 종속성이 많았습니다. 그 중 지원 -v4 라이브러리가있었습니다. DrawerLayout을 통합 할 때까지 모든 것이 잘 작동했습니다. 위의 오류가 발생한 곳입니다.

종속성에서 support-v4 라이브러리를 제거하기 만하면 해결됩니다. 이미 다른 종속성 (내 경우에는 Facebook SDK)에 포함되어 있었고, 이것이 문제를 일으킨 것으로 보입니다 (다른 버전 일 수 있습니다). 어쩌면이 비슷한 위치에있는 사람을 도울 수 있습니다 :)