Android Studio中的java.lang.NoClassDefFoundError:android.support.v4.view.LayoutInflaterCompatHC

时间:2015-08-25 13:53:47

标签: android android-studio build.gradle android-4.4-kitkat

  

我是android studio的新手,我正在做一个示例应用程序   安卓工作室,当我运行应用程序5.0时它工作得很好但是   5.0以下它的执行可以任何一个电话我在这里错了...

08-25 18:17:40.354  28953-28953/com.app E/AndroidRuntime﹕ FATAL EXCEPTION: main
        java.lang.NoClassDefFoundError: android.support.v4.view.LayoutInflaterCompatHC
                at android.support.v4.view.LayoutInflaterCompat$LayoutInflaterCompatImplV11.setFactory(LayoutInflaterCompat.java:42)
                at android.support.v4.view.LayoutInflaterCompat.setFactory(LayoutInflaterCompat.java:79)
                at android.support.v7.app.AppCompatDelegateImplV7.installViewFactory(AppCompatDelegateImplV7.java:812)
                at android.support.v7.app.AppCompatActivity.onCreate(AppCompatActivity.java:57)
                at com.app.utils.UIHelper.onCreate(UIHelper.java:28)
                at com.app.DashboardActivity.onCreate(DashboardActivity.java:97)
                at android.app.Activity.performCreate(Activity.java:4465)
                at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1049)
                at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1931)
                at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1992)
                at android.app.ActivityThread.access$600(ActivityThread.java:127)
                at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1158)
                at android.os.Handler.dispatchMessage(Handler.java:99)
                at android.os.Looper.loop(Looper.java:137)
                at android.app.ActivityThread.main(ActivityThread.java:4448)
                at java.lang.reflect.Method.invokeNative(Native Method)
                at java.lang.reflect.Method.invoke(Method.java:511)
                at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:823)
                at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:590)
                at dalvik.system.NativeStart.main(Native Method)

的build.gradle

android {

    compileSdkVersion 23
    buildToolsVersion "23.0.0"

    defaultConfig {
        minSdkVersion 14
        targetSdkVersion 23
        applicationId "com.app"
        multiDexEnabled = true
    }

    buildTypes {

        debug {
            minifyEnabled false
            debuggable true
        }
    }

    lintOptions {
        abortOnError false
    }

    packagingOptions{
        exclude 'META-INF/LICENSE'
        exclude 'META-INF/NOTICE'
    }
}

dependencies {
    compile fileTree(include: ['*.jar'], dir: 'libs')
    compile 'com.google.api-client:google-api-client:1.20.0'
    compile 'com.google.api-client:google-api-client-android:1.20.0'
    compile 'com.google.api-client:google-api-client-gson:1.20.0'
    compile 'com.google.apis:google-api-services-calendar:v3-rev125-1.20.0'
    compile 'com.android.support:appcompat-v7:23.0.0'
    compile 'com.android.support:design:23.0.0'
    compile 'com.google.android.gms:play-services:7.8.0'
}

1 个答案:

答案 0 :(得分:28)

看起来您已启用multidex,但您没有使用multidex库。

Lollipop(API 21)引入了对多索引的原生支持,但对于以前版本的Android,您必须使用multidex支持库来正确支持多索引。

首先,将依赖项添加到build.gradle:

compile 'com.android.support:multidex:1.0.0'

其次,您需要在应用程序代码中启用multidex。如果您已经使用自定义Application课程,您可以在清单中注册MultiDexApplication课程,如下所示:

<application
    ...
    android:name="android.support.multidex.MultiDexApplication">
    ...
</application>

如果 使用自定义应用程序类,则应在attachBaseContext()中启用multidex,如下所示:

@Override
protected void attachBaseContext(Context base) {
    super.attachBaseContext(base);

    MultiDex.install(this);
}

来源:Building Apps with over 65k Methods