Android Multidex 和支持库

标签 android android-support-library android-multidex

我在启用 multidex 时遇到问题。我正在使用 Android Studio,我在 DrawerLayoutWidget 上收到“找不到类”。这是设置

build.gradle

apply plugin: 'com.android.application'

android {
    compileSdkVersion 21
    buildToolsVersion '21.1.0'
    defaultConfig {
        applicationId 'com.myapp'
        minSdkVersion 14
        targetSdkVersion 21
        multiDexEnabled true

    }


}

dependencies {

    compile 'com.android.support:appcompat-v7:21.+'
    compile 'com.android.support:support-v4:21.+'
}   

activity_main.xml

<android.support.v4.widget.DrawerLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/drawerlayout"
    android:layout_width="match_parent"
    android:layout_height="match_parent">



    <FrameLayout
        android:id="@+id/frameContainer"
        android:layout_width="match_parent"
        android:layout_height="match_parent" >

    </FrameLayout>

    <ListView
        android:id="@+id/drawerList"
        android:layout_width="240dp"
        android:layout_height="match_parent"
        android:layout_gravity="start"
        android:choiceMode="singleChoice"
        android:divider="@color/drawerListDivider"
        android:dividerHeight="0dp"        
        android:listSelector="@drawable/drawer_list_selector"
        android:background="@color/drawerListBackground"/>
</android.support.v4.widget.DrawerLayout>

这是我的目录错误

12-07 00:41:15.239    4053-4053/com.myapplication W/dalvikvm﹕ VFY: unable to resolve virtual method 503: Landroid/support/v4/widget/ViewDragHelper;.smoothSlideViewTo (Landroid/view/View;II)Z
12-07 00:41:15.239    4053-4053/com.myapplication D/dalvikvm﹕ VFY: replacing opcode 0x6e at 0x0062
12-07 00:41:15.239    4053-4053/com.myapplication I/dalvikvm﹕ Could not find method android.support.v4.widget.ViewDragHelper.smoothSlideViewTo, referenced from method android.support.v4.widget.DrawerLayout.closeDrawer
12-07 00:41:15.239    4053-4053/com.myapplication W/dalvikvm﹕ VFY: unable to resolve virtual method 503: Landroid/support/v4/widget/ViewDragHelper;.smoothSlideViewTo (Landroid/view/View;II)Z
12-07 00:41:15.239    4053-4053/com.myapplication D/dalvikvm﹕ VFY: replacing opcode 0x6e at 0x0075
12-07 00:41:15.239    4053-4053/com.myapplication E/dalvikvm﹕ Could not find class 'android.support.v4.widget.DrawerLayout$LayoutParams', referenced from method android.support.v4.widget.DrawerLayout.closeDrawers
12-07 00:41:15.239    4053-4053/com.myapplication W/dalvikvm﹕ VFY: unable to resolve check-cast 105 (Landroid/support/v4/widget/DrawerLayout$LayoutParams;) in Landroid/support/v4/widget/DrawerLayout;
12-07 00:41:15.239    4053-4053/com.myapplication D/dalvikvm﹕ VFY: replacing opcode 0x1f at 0x001c
12-07 00:41:15.239    4053-4053/com.myapplication I/dalvikvm﹕ Could not find method android.support.v4.widget.DrawerLayout$ViewDragCallback.removeCallbacks, referenced from method android.support.v4.widget.DrawerLayout.closeDrawers
12-07 00:41:15.239    4053-4053/com.myapplication W/dalvikvm﹕ VFY: unable to resolve virtual method 318: Landroid/support/v4/widget/DrawerLayout$ViewDragCallback;.removeCallbacks ()V
12-07 00:41:15.239    4053-4053/com.myapplication D/dalvikvm﹕ VFY: replacing opcode 0x6e at 0x0071
12-07 00:41:15.239    4053-4053/com.myapplication E/dalvikvm﹕ Could not find class 'android.support.v4.widget.DrawerLayout$LayoutParams', referenced from method android.support.v4.widget.DrawerLayout.computeScroll
12-07 00:41:15.239    4053-4053/com.myapplication W/dalvikvm﹕ VFY: unable to resolve check-cast 105 (Landroid/support/v4/widget/DrawerLayout$LayoutParams;) in Landroid/support/v4/widget/DrawerLayout;
12-07 00:41:15.239    4053-4053/com.myapplication D/dalvikvm﹕ VFY: replacing opcode 0x1f at 0x0019
12-07 00:41:15.239    4053-4053/com.myapplication I/dalvikvm﹕ Could not find method android.support.v4.widget.ViewDragHelper.continueSettling, referenced from method android.support.v4.widget.DrawerLayout.computeScroll
12-07 00:41:15.239    4053-4053/com.myapplication W/dalvikvm﹕ VFY: unable to resolve virtual method 493: Landroid/support/v4/widget/ViewDragHelper;.continueSettling (Z)Z
12-07 00:41:15.239    4053-4053/com.myapplication D/dalvikvm﹕ VFY: replacing opcode 0x6e at 0x0030
12-07 00:41:15.239    4053-4053/com.myapplication E/dalvikvm﹕ Could not find class 'android.support.v4.widget.DrawerLayout$LayoutParams', referenced from method android.support.v4.widget.DrawerLayout.dispatchOnDrawerClosed
12-07 00:41:15.239    4053-4053/com.myapplication W/dalvikvm﹕ VFY: unable to resolve check-cast 105 (Landroid/support/v4/widget/DrawerLayout$LayoutParams;) in Landroid/support/v4/widget/DrawerLayout;
12-07 00:41:15.239    4053-4053/com.myapplication D/dalvikvm﹕ VFY: replacing opcode 0x1f at 0x0007
12-07 00:41:15.239    4053-4053/com.myapplication E/dalvikvm﹕ Could not find class 'android.support.v4.widget.DrawerLayout$LayoutParams', referenced from method android.support.v4.widget.DrawerLayout.dispatchOnDrawerOpened
12-07 00:41:15.239    4053-4053/com.myapplication W/dalvikvm﹕ VFY: unable to resolve check-cast 105 (Landroid/support/v4/widget/DrawerLayout$LayoutParams;) in Landroid/support/v4/widget/DrawerLayout;
12-07 00:41:15.239    4053-4053/com.myapplication D/dalvikvm﹕ VFY: replacing opcode 0x1f at 0x0007
12-07 00:41:15.249    4053-4053/com.myapplication I/dalvikvm﹕ Could not find method android.support.v4.widget.ViewDragHelper.getEdgeSize, referenced from method android.support.v4.widget.DrawerLayout.drawChild
12-07 00:41:15.249    4053-4053/com.myapplication W/dalvikvm﹕ VFY: unable to resolve virtual method 496: Landroid/support/v4/widget/ViewDragHelper;.getEdgeSize ()I
12-07 00:41:15.249    4053-4053/com.myapplication D/dalvikvm﹕ VFY: replacing opcode 0x74 at 0x01a9
12-07 00:41:15.249    4053-4053/com.myapplication I/dalvikvm﹕ Could not find method android.support.v4.widget.ViewDragHelper.getEdgeSize, referenced from method android.support.v4.widget.DrawerLayout.drawChild
12-07 00:41:15.249    4053-4053/com.myapplication W/dalvikvm﹕ VFY: unable to resolve virtual method 496: Landroid/support/v4/widget/ViewDragHelper;.getEdgeSize ()I
12-07 00:41:15.249    4053-4053/com.myapplication D/dalvikvm﹕ VFY: replacing opcode 0x74 at 0x0251
12-07 00:41:15.249    4053-4053/com.myapplication E/dalvikvm﹕ Could not find class 'android.support.v4.widget.DrawerLayout$LayoutParams', referenced from method android.support.v4.widget.DrawerLayout.findOpenDrawer
12-07 00:41:15.249    4053-4053/com.myapplication W/dalvikvm﹕ VFY: unable to resolve check-cast 105 (Landroid/support/v4/widget/DrawerLayout$LayoutParams;) in Landroid/support/v4/widget/DrawerLayout;
12-07 00:41:15.249    4053-4053/com.myapplication D/dalvikvm﹕ VFY: replacing opcode 0x1f at 0x0019
12-07 00:41:15.249    4053-4053/com.myapplication E/dalvikvm﹕ Could not find class 'android.support.v4.widget.DrawerLayout$LayoutParams', referenced from method android.support.v4.widget.DrawerLayout.generateDefaultLayoutParams
12-07 00:41:15.249    4053-4053/com.myapplication W/dalvikvm﹕ VFY: unable to resolve new-instance 105 (Landroid/support/v4/widget/DrawerLayout$LayoutParams;) in Landroid/support/v4/widget/DrawerLayout;
12-07 00:41:15.249    4053-4053/com.myapplication D/dalvikvm﹕ VFY: replacing opcode 0x22 at 0x0001
12-07 00:41:15.249    4053-4053/com.myapplication E/dalvikvm﹕ Could not find class 'android.support.v4.widget.DrawerLayout$LayoutParams', referenced from method android.support.v4.widget.DrawerLayout.generateLayoutParams
12-07 00:41:15.249    4053-4053/com.myapplication W/dalvikvm﹕ VFY: unable to resolve new-instance 105 (Landroid/support/v4/widget/DrawerLayout$LayoutParams;) in Landroid/support/v4/widget/DrawerLayout;
12-07 00:41:15.249    4053-4053/com.myapplication D/dalvikvm﹕ VFY: replacing opcode 0x22 at 0x0002
12-07 00:41:15.249    4053-4053/com.myapplication E/dalvikvm﹕ Could not find class 'android.support.v4.widget.DrawerLayout$LayoutParams', referenced from method android.support.v4.widget.DrawerLayout.generateLayoutParams
12-07 00:41:15.249    4053-4053/com.myapplication W/dalvikvm﹕ VFY: unable to resolve instanceof 105 (Landroid/support/v4/widget/DrawerLayout$LayoutParams;) in Landroid/support/v4/widget/DrawerLayout;
12-07 00:41:15.249    4053-4053/com.myapplication D/dalvikvm﹕ VFY: replacing opcode 0x20 at 0x0003
12-07 00:41:15.249    4053-4053/com.myapplication E/dalvikvm﹕ Could not find class 'android.support.v4.widget.DrawerLayout$LayoutParams', referenced from method android.support.v4.widget.DrawerLayout.getDrawerViewAbsoluteGravity
12-07 00:41:15.249    4053-4053/com.myapplication W/dalvikvm﹕ VFY: unable to resolve check-cast 105 (Landroid/support/v4/widget/DrawerLayout$LayoutParams;) in Landroid/support/v4/widget/DrawerLayout;
12-07 00:41:15.249    4053-4053/com.myapplication D/dalvikvm﹕ VFY: replacing opcode 0x1f at 0x0007
12-07 00:41:15.259    4053-4053/com.myapplication E/dalvikvm﹕ Could not find class 'android.support.v4.widget.DrawerLayout$LayoutParams', referenced from method android.support.v4.widget.DrawerLayout.getDrawerViewOffset
12-07 00:41:15.259    4053-4053/com.myapplication W/dalvikvm﹕ VFY: unable to resolve check-cast 105 (Landroid/support/v4/widget/DrawerLayout$LayoutParams;) in Landroid/support/v4/widget/DrawerLayout;
12-07 00:41:15.259    4053-4053/com.myapplication D/dalvikvm﹕ VFY: replacing opcode 0x1f at 0x0007
12-07 00:41:15.259    4053-4053/com.myapplication E/dalvikvm﹕ Could not find class 'android.support.v4.widget.DrawerLayout$LayoutParams', referenced from method android.support.v4.widget.DrawerLayout.isContentView
12-07 00:41:15.259    4053-4053/com.myapplication W/dalvikvm﹕ VFY: unable to resolve check-cast 105 (Landroid/support/v4/widget/DrawerLayout$LayoutParams;) in Landroid/support/v4/widget/DrawerLayout;
12-07 00:41:15.259    4053-4053/com.myapplication D/dalvikvm﹕ VFY: replacing opcode 0x1f at 0x0007
12-07 00:41:15.259    4053-4053/com.myapplication E/dalvikvm﹕ Could not find class 'android.support.v4.widget.DrawerLayout$LayoutParams', referenced from method android.support.v4.widget.DrawerLayout.isDrawerOpen
12-07 00:41:15.259    4053-4053/com.myapplication W/dalvikvm﹕ VFY: unable to resolve check-cast 105 (Landroid/support/v4/widget/DrawerLayout$LayoutParams;) in Landroid/support/v4/widget/DrawerLayout;
12-07 00:41:15.259    4053-4053/com.myapplication D/dalvikvm﹕ VFY: replacing opcode 0x1f at 0x0035
12-07 00:41:15.259    4053-4053/com.myapplication E/dalvikvm﹕ Could not find class 'android.support.v4.widget.DrawerLayout$LayoutParams', referenced from method android.support.v4.widget.DrawerLayout.isDrawerView
12-07 00:41:15.259    4053-4053/com.myapplication W/dalvikvm﹕ VFY: unable to resolve check-cast 105 (Landroid/support/v4/widget/DrawerLayout$LayoutParams;) in Landroid/support/v4/widget/DrawerLayout;
12-07 00:41:15.259    4053-4053/com.myapplication D/dalvikvm﹕ VFY: replacing opcode 0x1f at 0x0007
12-07 00:41:15.259    4053-4053/com.myapplication E/dalvikvm﹕ Could not find class 'android.support.v4.widget.DrawerLayout$LayoutParams', referenced from method android.support.v4.widget.DrawerLayout.isDrawerVisible
12-07 00:41:15.259    4053-4053/com.myapplication W/dalvikvm﹕ VFY: unable to resolve check-cast 105 (Landroid/support/v4/widget/DrawerLayout$LayoutParams;) in Landroid/support/v4/widget/DrawerLayout;
12-07 00:41:15.259    4053-4053/com.myapplication D/dalvikvm﹕ VFY: replacing opcode 0x1f at 0x0035
12-07 00:41:15.259    4053-4053/com.myapplication I/dalvikvm﹕ Could not find method android.support.v4.widget.DrawerLayout$DrawerLayoutCompatImpl.getTopInset, referenced from method android.support.v4.widget.DrawerLayout.onDraw
12-07 00:41:15.259    4053-4053/com.myapplication W/dalvikvm﹕ VFY: unable to resolve interface method 303: Landroid/support/v4/widget/DrawerLayout$DrawerLayoutCompatImpl;.getTopInset (Ljava/lang/Object;)I
12-07 00:41:15.259    4053-4053/com.myapplication D/dalvikvm﹕ VFY: replacing opcode 0x72 at 0x0016
12-07 00:41:15.259    4053-4053/com.myapplication I/dalvikvm﹕ Could not find method android.support.v4.view.MotionEventCompat.getActionMasked, referenced from method android.support.v4.widget.DrawerLayout.onInterceptTouchEvent
12-07 00:41:15.259    4053-4053/com.myapplication W/dalvikvm﹕ VFY: unable to resolve static method 130: Landroid/support/v4/view/MotionEventCompat;.getActionMasked (Landroid/view/MotionEvent;)I
12-07 00:41:15.259    4053-4053/com.myapplication D/dalvikvm﹕ VFY: replacing opcode 0x71 at 0x0003
12-07 00:41:15.259    4053-4053/com.myapplication I/dalvikvm﹕ Could not find method android.support.v4.view.KeyEventCompat.startTracking, referenced from method android.support.v4.widget.DrawerLayout.onKeyDown
12-07 00:41:15.259    4053-4053/com.myapplication W/dalvikvm﹕ VFY: unable to resolve static method 126: Landroid/support/v4/view/KeyEventCompat;.startTracking (Landroid/view/KeyEvent;)V
12-07 00:41:15.259    4053-4053/com.myapplication D/dalvikvm﹕ VFY: replacing opcode 0x71 at 0x000f
12-07 00:41:15.259    4053-4053/com.myapplication E/dalvikvm﹕ Could not find class 'android.support.v4.widget.DrawerLayout$LayoutParams', referenced from method android.support.v4.widget.DrawerLayout.onLayout
12-07 00:41:15.259    4053-4053/com.myapplication W/dalvikvm﹕ VFY: unable to resolve check-cast 105 (Landroid/support/v4/widget/DrawerLayout$LayoutParams;) in Landroid/support/v4/widget/DrawerLayout;
12-07 00:41:15.259    4053-4053/com.myapplication D/dalvikvm﹕ VFY: replacing opcode 0x1f at 0x0055
12-07 00:41:15.269    4053-4053/com.myapplication E/dalvikvm﹕ Could not find class 'android.support.v4.widget.DrawerLayout$LayoutParams', referenced from method android.support.v4.widget.DrawerLayout.onMeasure
12-07 00:41:15.269    4053-4053/com.myapplication W/dalvikvm﹕ VFY: unable to resolve check-cast 105 (Landroid/support/v4/widget/DrawerLayout$LayoutParams;) in Landroid/support/v4/widget/DrawerLayout;
12-07 00:41:15.269    4053-4053/com.myapplication D/dalvikvm﹕ VFY: replacing opcode 0x1f at 0x00eb
12-07 00:41:15.279    4053-4053/com.myapplication E/dalvikvm﹕ Could not find class 'android.support.v4.widget.DrawerLayout$SavedState', referenced from method android.support.v4.widget.DrawerLayout.onRestoreInstanceState
12-07 00:41:15.279    4053-4053/com.myapplication W/dalvikvm﹕ VFY: unable to resolve check-cast 107 (Landroid/support/v4/widget/DrawerLayout$SavedState;) in Landroid/support/v4/widget/DrawerLayout;
12-07 00:41:15.279    4053-4053/com.myapplication D/dalvikvm﹕ VFY: replacing opcode 0x1f at 0x0003
12-07 00:41:15.279    4053-4053/com.myapplication E/dalvikvm﹕ Could not find class 'android.support.v4.widget.DrawerLayout$SavedState', referenced from method android.support.v4.widget.DrawerLayout.onSaveInstanceState
12-07 00:41:15.279    4053-4053/com.myapplication W/dalvikvm﹕ VFY: unable to resolve new-instance 107 (Landroid/support/v4/widget/DrawerLayout$SavedState;) in Landroid/support/v4/widget/DrawerLayout;
12-07 00:41:15.279    4053-4053/com.myapplication D/dalvikvm﹕ VFY: replacing opcode 0x22 at 0x0007
12-07 00:41:15.279    4053-4053/com.myapplication I/dalvikvm﹕ Could not find method android.support.v4.widget.ViewDragHelper.processTouchEvent, referenced from method android.support.v4.widget.DrawerLayout.onTouchEvent
12-07 00:41:15.279    4053-4053/com.myapplication W/dalvikvm﹕ VFY: unable to resolve virtual method 499: Landroid/support/v4/widget/ViewDragHelper;.processTouchEvent (Landroid/view/MotionEvent;)V
12-07 00:41:15.279    4053-4053/com.myapplication D/dalvikvm﹕ VFY: replacing opcode 0x6e at 0x0007
12-07 00:41:15.289    4053-4053/com.myapplication E/dalvikvm﹕ Could not find class 'android.support.v4.widget.DrawerLayout$LayoutParams', referenced from method android.support.v4.widget.DrawerLayout.openDrawer
12-07 00:41:15.289    4053-4053/com.myapplication W/dalvikvm﹕ VFY: unable to resolve check-cast 105 (Landroid/support/v4/widget/DrawerLayout$LayoutParams;) in Landroid/support/v4/widget/DrawerLayout;
12-07 00:41:15.289    4053-4053/com.myapplication D/dalvikvm﹕ VFY: replacing opcode 0x1f at 0x003a
12-07 00:41:15.289    4053-4053/com.myapplication I/dalvikvm﹕ Could not find method android.support.v4.widget.ViewDragHelper.smoothSlideViewTo, referenced from method android.support.v4.widget.DrawerLayout.openDrawer
12-07 00:41:15.289    4053-4053/com.myapplication W/dalvikvm﹕ VFY: unable to resolve virtual method 503: Landroid/support/v4/widget/ViewDragHelper;.smoothSlideViewTo (Landroid/view/View;II)Z
12-07 00:41:15.289    4053-4053/com.myapplication D/dalvikvm﹕ VFY: replacing opcode 0x6e at 0x0064
12-07 00:41:15.289    4053-4053/com.myapplication I/dalvikvm﹕ Could not find method android.support.v4.widget.ViewDragHelper.smoothSlideViewTo, referenced from method android.support.v4.widget.DrawerLayout.openDrawer
12-07 00:41:15.289    4053-4053/com.myapplication W/dalvikvm﹕ VFY: unable to resolve virtual method 503: Landroid/support/v4/widget/ViewDragHelper;.smoothSlideViewTo (Landroid/view/View;II)Z
12-07 00:41:15.289    4053-4053/com.myapplication D/dalvikvm﹕ VFY: replacing opcode 0x6e at 0x007d
12-07 00:41:15.289    4053-4053/com.myapplication I/dalvikvm﹕ Could not find method android.support.v4.widget.ViewDragHelper.cancel, referenced from method android.support.v4.widget.DrawerLayout.setDrawerLockMode
12-07 00:41:15.289    4053-4053/com.myapplication W/dalvikvm﹕ VFY: unable to resolve virtual method 491: Landroid/support/v4/widget/ViewDragHelper;.cancel ()V
12-07 00:41:15.289    4053-4053/com.myapplication D/dalvikvm﹕ VFY: replacing opcode 0x6e at 0x0022
12-07 00:41:15.289    4053-4053/com.myapplication E/dalvikvm﹕ Could not find class 'android.support.v4.widget.DrawerLayout$LayoutParams', referenced from method android.support.v4.widget.DrawerLayout.setDrawerLockMode
12-07 00:41:15.289    4053-4053/com.myapplication W/dalvikvm﹕ VFY: unable to resolve check-cast 105 (Landroid/support/v4/widget/DrawerLayout$LayoutParams;) in Landroid/support/v4/widget/DrawerLayout;
12-07 00:41:15.289    4053-4053/com.myapplication D/dalvikvm﹕ VFY: replacing opcode 0x1f at 0x003c
12-07 00:41:15.299    4053-4053/com.myapplication E/dalvikvm﹕ Could not find class 'android.support.v4.widget.DrawerLayout$LayoutParams', referenced from method android.support.v4.widget.DrawerLayout.setDrawerViewOffset
12-07 00:41:15.299    4053-4053/com.myapplication W/dalvikvm﹕ VFY: unable to resolve check-cast 105 (Landroid/support/v4/widget/DrawerLayout$LayoutParams;) in Landroid/support/v4/widget/DrawerLayout;
12-07 00:41:15.299    4053-4053/com.myapplication D/dalvikvm﹕ VFY: replacing opcode 0x1f at 0x0008
12-07 00:41:15.299    4053-4053/com.myapplication I/dalvikvm﹕ Could not find method android.support.v4.content.ContextCompat.getDrawable, referenced from method android.support.v4.widget.DrawerLayout.setStatusBarBackground
12-07 00:41:15.299    4053-4053/com.myapplication W/dalvikvm﹕ VFY: unable to resolve static method 113: Landroid/support/v4/content/ContextCompat;.getDrawable (Landroid/content/Context;I)Landroid/graphics/drawable/Drawable;
12-07 00:41:15.299    4053-4053/com.myapplication D/dalvikvm﹕ VFY: replacing opcode 0x71 at 0x000c
12-07 00:41:15.299    4053-4053/com.myapplication I/dalvikvm﹕ Could not find method android.support.v4.widget.ViewDragHelper.getViewDragState, referenced from method android.support.v4.widget.DrawerLayout.updateDrawerState
12-07 00:41:15.299    4053-4053/com.myapplication W/dalvikvm﹕ VFY: unable to resolve virtual method 498: Landroid/support/v4/widget/ViewDragHelper;.getViewDragState ()I
12-07 00:41:15.299    4053-4053/com.myapplication D/dalvikvm﹕ VFY: replacing opcode 0x6e at 0x0007
12-07 00:41:15.299    4053-4053/com.myapplication D/dalvikvm﹕ DexOpt: unable to opt direct call 0x0130 at 0x24 in Landroid/support/v4/widget/DrawerLayout;.<clinit>
12-07 00:41:15.299    4053-4053/com.myapplication D/dalvikvm﹕ DexOpt: unable to opt direct call 0x0131 at 0x31 in Landroid/support/v4/widget/DrawerLayout;.<clinit>
12-07 00:41:15.299    4053-4053/com.myapplication D/dalvikvm﹕ DexOpt: unable to opt direct call 0x012b at 0x12 in Landroid/support/v4/widget/DrawerLayout;.<init>
12-07 00:41:15.309    4053-4053/com.myapplication D/dalvikvm﹕ DexOpt: unable to opt direct call 0x013d at 0x55 in Landroid/support/v4/widget/DrawerLayout;.<init>
12-07 00:41:15.309    4053-4053/com.myapplication D/dalvikvm﹕ DexOpt: unable to opt direct call 0x013d at 0x62 in Landroid/support/v4/widget/DrawerLayout;.<init>
12-07 00:41:15.309    4053-4053/com.myapplication D/dalvikvm﹕ DexOpt: unable to opt direct call 0x012a at 0xc0 in Landroid/support/v4/widget/DrawerLayout;.<init>
12-07 00:41:15.359    4053-4053/com.myapplication I/dalvikvm﹕ DexOpt: unable to optimize instance field ref 0x0030 at 0x10 in Landroid/support/v4/widget/DrawerLayout;.onRestoreInstanceState
12-07 00:41:15.359    4053-4053/com.myapplication I/dalvikvm﹕ DexOpt: unable to optimize instance field ref 0x0030 at 0x16 in Landroid/support/v4/widget/DrawerLayout;.onRestoreInstanceState
12-07 00:41:15.359    4053-4053/com.myapplication I/dalvikvm﹕ DexOpt: unable to optimize instance field ref 0x002e at 0x27 in Landroid/support/v4/widget/DrawerLayout;.onRestoreInstanceState
12-07 00:41:15.359    4053-4053/com.myapplication I/dalvikvm﹕ DexOpt: unable to optimize instance field ref 0x002f at 0x2f in Landroid/support/v4/widget/DrawerLayout;.onRestoreInstanceState
12-07 00:41:15.369    4053-4053/com.myapplication D/dalvikvm﹕ DexOpt: unable to opt direct call 0x013b at 0x0d in Landroid/support/v4/widget/DrawerLayout;.onSaveInstanceState
12-07 00:41:15.369    4053-4053/com.myapplication I/dalvikvm﹕ DexOpt: unable to optimize instance field ref 0x0025 at 0x22 in Landroid/support/v4/widget/DrawerLayout;.onSaveInstanceState
12-07 00:41:15.369    4053-4053/com.myapplication I/dalvikvm﹕ DexOpt: unable to optimize instance field ref 0x0030 at 0x24 in Landroid/support/v4/widget/DrawerLayout;.onSaveInstanceState
12-07 00:41:15.369    4053-4053/com.myapplication I/dalvikvm﹕ DexOpt: unable to optimize instance field ref 0x002e at 0x2a in Landroid/support/v4/widget/DrawerLayout;.onSaveInstanceState
12-07 00:41:15.369    4053-4053/com.myapplication I/dalvikvm﹕ DexOpt: unable to optimize instance field ref 0x002f at 0x30 in Landroid/support/v4/widget/DrawerLayout;.onSaveInstanceState
12-07 00:41:15.379    4053-4053/com.myapplication I/dalvikvm﹕ DexOpt: unable to optimize instance field ref 0x002a at 0x40 in Landroid/support/v4/widget/DrawerLayout;.openDrawer
12-07 00:41:15.379    4053-4053/com.myapplication I/dalvikvm﹕ DexOpt: unable to optimize instance field ref 0x0028 at 0x44 in Landroid/support/v4/widget/DrawerLayout;.openDrawer
12-07 00:41:15.379    4053-4053/com.myapplication I/dalvikvm﹕ DexOpt: unable to optimize instance field ref 0x0025 at 0x3e in Landroid/support/v4/widget/DrawerLayout;.setDrawerLockMode
12-07 00:41:15.379    4053-4053/com.myapplication I/dalvikvm﹕ DexOpt: unable to optimize instance field ref 0x002a at 0x0d in Landroid/support/v4/widget/DrawerLayout;.setDrawerViewOffset
12-07 00:41:15.379    4053-4053/com.myapplication I/dalvikvm﹕ DexOpt: unable to optimize instance field ref 0x002a at 0x16 in Landroid/support/v4/widget/DrawerLayout;.setDrawerViewOffset
12-07 00:41:15.379    4053-4053/com.myapplication I/dalvikvm﹕ DexOpt: unable to optimize instance field ref 0x002a at 0x2d in Landroid/support/v4/widget/DrawerLayout;.updateDrawerState
12-07 00:41:15.379    4053-4053/com.myapplication I/dalvikvm﹕ DexOpt: unable to optimize instance field ref 0x002a at 0x5f in Landroid/support/v4/widget/DrawerLayout;.updateDrawerState
12-07 00:41:15.379    4053-4053/com.myapplication W/dalvikvm﹕ Exception Ljava/lang/NoClassDefFoundError; thrown while initializing Landroid/support/v4/widget/DrawerLayout;
12-07 00:41:15.379    4053-4053/com.myapplication W/dalvikvm﹕ Class init failed in Constructor.constructNative (Landroid/support/v4/widget/DrawerLayout;)
12-07 00:41:15.379    4053-4053/com.myapplication D/AndroidRuntime﹕ Shutting down VM
12-07 00:41:15.379    4053-4053/com.myapplication W/dalvikvm﹕ threadid=1: thread exiting with uncaught exception (group=0x41e7ac68)
12-07 00:41:15.379    4053-4053/com.myapplication E/AndroidRuntime﹕ FATAL EXCEPTION: main
Process: com.myapplication, PID: 4053
java.lang.NoClassDefFoundError: android.support.v4.widget.DrawerLayout$DrawerLayoutCompatImplBase
        at android.support.v4.widget.DrawerLayout.<clinit>(DrawerLayout.java:307)
        at java.lang.reflect.Constructor.constructNative(Native Method)
        at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
        at android.view.LayoutInflater.createView(LayoutInflater.java:594)
        at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:696)
        at android.view.LayoutInflater.inflate(LayoutInflater.java:469)
        at android.view.LayoutInflater.inflate(LayoutInflater.java:397)
        at android.view.LayoutInflater.inflate(LayoutInflater.java:353)
        at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:343)
        at android.app.Activity.setContentView(Activity.java:1929)
        at com.myapplication.MainActivity.onCreate(MainActivity.java:58)
        at android.app.Activity.performCreate(Activity.java:5231)
        at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087)
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2169)
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2265)
        at android.app.ActivityThread.access$800(ActivityThread.java:145)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1206)
        at android.os.Handler.dispatchMessage(Handler.java:102)
        at android.os.Looper.loop(Looper.java:136)
        at android.app.ActivityThread.main(ActivityThread.java:5081)
        at java.lang.reflect.Method.invokeNative(Native Method)
        at java.lang.reflect.Method.invoke(Method.java:515)
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:781)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
        at dalvik.system.NativeStart.main(Native Method)

我尝试了各种构建工具版本和支持版本。但我无法修复此错误。但是,如果我将 multiDeskEnabled 更改为 false,则一切正常。因此,对于 multiDeskEnabled,相同的依赖项不起作用。

当我搜索解决方案时,我发现很少有关于保持更改构建顺序等的建议,这些建议与 Eclipse 相关。但我找不到任何适用于 Android 的解决方案。谁能帮我解决这个问题?

最佳答案

您缺少一些在 <5.0 设备上运行所需的额外功能。

  1. 您的 gradle 依赖项中需要这个:compile 'com.android.support:multidex:1.0.0'
  2. 您需要将 list 中的应用程序更改为 multidex 应用程序,或者在您的自定义应用程序类中覆盖 attachBaseContext() 以在之后调用 MutiDex.install(this) super.attachBaseContext(base);

您可以在此处查看完整的文档(可能会在您发布后更新)https://developer.android.com/tools/building/multidex.html#mdex-gradle .请参阅“使用 Gradle 为 Multidex 配置您的应用程序”部分。

关于Android Multidex 和支持库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27340058/

相关文章:

java - 如何在 Android 内部存储中保存 XML 文件

android - SwitchPreference 以编程方式创建,setChecked 不起作用

android - RecyclerView 在较新的 Android 版本上滚动滞后

android - java.exe 已退出,代码为 2 (MSB6006) 无法写入输出 : Too many field references: 81626; max is 65536

android - 崩溃 - 运行时异常(MultiDex.java :178)

android - Multidex Android 库模块

javascript - react native : How to pass props navigating from one screen to another

java - 如何停止播放 youtube 视频

android - 支持库(v4 与 v13)

javascript - 如何让二维码阅读器识别我生成的二维码?