2015-08-25 9 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 w 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' 
} 

Odpowiedz

28

Wygląda na to, że masz włączony multidex, ale jesteś nie używając biblioteki wielościeżkowej.

Lollipop (API 21) wprowadził natywne wsparcie dla wielościeżkowego, ale w poprzednich wersjach systemu Android trzeba korzystać z biblioteki obsługi wielu plików, aby odpowiednio obsługiwać wielościeżki.

pierwsze, dodać zależność do build.gradle:

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

drugie, trzeba włączyć multidex w kodzie aplikacji. Jeśli jesteś nie użyciu niestandardowego Application klasa już, można to zrobić, rejestrując klasę MultiDexApplication w swoim manifeście tak:

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

jeśli użyciu niestandardowej klasy aplikacji, należy włączyć multidex w attachBaseContext() tak:

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

    MultiDex.install(this); 
} 

Źródło: Building Apps with over 65k Methods

+0

teraz mam ten problem "Wykonanie nie powiodło się dla zadania": 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 '' zakończony niezerowa wartość wyjściowa 3 " –

+0

Uważam, że oznacza to, że w Studio zabrakło pamięci. Zobacz http://stackoverflow.com/questions/30483827/android-studio-java-exe-finished-with-non-zero-exit -value-3 –

+0

To działa dobrze dzięki, koleś –

Powiązane problemy