9

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...

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'
}
Pandiyan Muthu
  • 1,040
  • 4
  • 21
  • 39

1 Answers1

28

It looks like you have enabled multidex, but you are not using the multidex library.

Lollipop (API 21) introduced native support for multidexing, but for previous versions of Android you must use the multidex support library to properly support multidexing.

First, add the dependency to your build.gradle:

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

Second, you need to enable multidex in your application code. If you are not using a custom Application class already, you can do so by registering the MultiDexApplication class in your manifest like so:

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

If you are using a custom application class, you should enable multidex in attachBaseContext() like so:

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

    MultiDex.install(this);
}

Source: Building Apps with over 65k Methods

Bryan Herbst
  • 66,602
  • 10
  • 133
  • 120
  • now i got this issue "Execution failed for task ':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'' finished with non-zero exit value 3" – Pandiyan Muthu Aug 25 '15 at 14:08
  • I believe that means that Studio has run out of memory. See http://stackoverflow.com/questions/30483827/android-studio-java-exe-finished-with-non-zero-exit-value-3 – Bryan Herbst Aug 25 '15 at 14:12
  • Thanks brother you saved my lot of time – Pawan asati Feb 10 '16 at 05:24