2015-08-25 1 views
8

i am new to android studio i am doing one sample application in android studio, when i run the application 5.0 it's working fine but 5.0 below it's throw's this Execption can any one tel what i am wrong here...java.lang.NoClassDefFoundError: android.support.v4.view.LayoutInflaterCompatHC в Android Studio

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

ответ

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> 

Если являются с помощью пользовательского класса приложения, вы должны включить multidex в attachBaseContext() так:

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

    MultiDex.install(this); 
} 

Источник: Building Apps with over 65k Methods

+0

теперь я получил этот вопрос «Выполнение не выполнено для задачи»: doctor: dexDebug '. > com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process 'command' C: \ Program Files \ Java \ jdk1.8.0_45 \ bin \ java.exe '' завершен с ненулевое значение выхода 3 " –

+0

Я считаю, что это означает, что у Studio закончилась нехватка памяти. См. http://stackoverflow.com/questions/30483827/android-studio-java-exe-finished-with-non-zero-exit -value-3 –

+0

Он отлично работает благодаря чуваку –