【问题标题】:java.lang.NoClassDefFoundError: android.support.v4.view.LayoutInflaterCompatHC in Android Studiojava.lang.NoClassDefFoundError:Android Studio 中的 android.support.v4.view.LayoutInflaterCompatHC
【发布时间】:2015-11-19 06:31:32
【问题描述】:

我是 android studio 的新手,我正在做一个示例应用程序 android studio,当我运行应用程序 5.0 时,它工作正常,但是 5.0 以下是抛出的这个 Execption 任何人都可以告诉我我在这里错了什么......

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

【问题讨论】:

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


    【解决方案1】:

    您似乎启用了 multidex,但您没有使用 multidex 库。

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

    首先,将依赖项添加到您的 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

    【讨论】:

    • 现在我得到了这个问题“任务':doctor:dexDebug'的执行失败。> com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process '命令 'C:\Program Files\Java\jdk1.8.0_45\bin\java.exe'' 以非零退出值 3“结束”
    • 我认为这意味着 Studio 内存不足。见stackoverflow.com/questions/30483827/…
    • 感谢兄弟为我节省了很多时间
    猜你喜欢
    • 2015-09-23
    • 2017-05-14
    • 2014-10-06
    • 2014-02-28
    • 2015-01-11
    • 2015-08-13
    • 1970-01-01
    相关资源
    最近更新 更多