1

I am writing an application in Android Studio. It compiles and works perfectly on Marshmallow, but when I try to execute it with a Jelly Bean emulator (API 16), it fails. I also tried to change the compileSdkVersion to 16 and consequently also change all the dependencies with older versions, but it still doesn't work. Can you help me?

This is the error:

FATAL EXCEPTION: main
                                                                         java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.carlo.application/com.example.carlo.clashofschools.MainActivity}: android.view.InflateException: Binary XML file line #16: Error inflating class android.support.design.widget.NavigationView
                                                                             at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2059)
                                                                             at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2084)
                                                                             at android.app.ActivityThread.access$600(ActivityThread.java:130)
                                                                             at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1195)
                                                                             at android.os.Handler.dispatchMessage(Handler.java:99)
                                                                             at android.os.Looper.loop(Looper.java:137)
                                                                             at android.app.ActivityThread.main(ActivityThread.java:4745)
                                                                             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:786)
                                                                             at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
                                                                             at dalvik.system.NativeStart.main(Native Method)
                                                                          Caused by: android.view.InflateException: Binary XML file line #16: Error inflating class android.support.design.widget.NavigationView
                                                                             at android.view.LayoutInflater.createView(LayoutInflater.java:613)
                                                                             at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:687)
                                                                             at android.view.LayoutInflater.rInflate(LayoutInflater.java:746)
                                                                             at android.view.LayoutInflater.inflate(LayoutInflater.java:489)
                                                                             at android.view.LayoutInflater.inflate(LayoutInflater.java:396)
                                                                             at android.view.LayoutInflater.inflate(LayoutInflater.java:352)
                                                                             at android.support.v7.app.AppCompatDelegateImplV9.setContentView(AppCompatDelegateImplV9.java:284)
                                                                             at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:140)
                                                                             at com.example.carlo.clashofschools.MainActivity.onCreate(MainActivity.java:37)
                                                                             at android.app.Activity.performCreate(Activity.java:5008)
                                                                             at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1079)
                                                                             at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2023)
                                                                             at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2084) 
                                                                             at android.app.ActivityThread.access$600(ActivityThread.java:130) 
                                                                             at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1195) 
                                                                             at android.os.Handler.dispatchMessage(Handler.java:99) 
                                                                             at android.os.Looper.loop(Looper.java:137) 
                                                                             at android.app.ActivityThread.main(ActivityThread.java:4745) 
                                                                             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:786) 
                                                                             at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553) 
                                                                             at dalvik.system.NativeStart.main(Native Method) 
                                                                          Caused by: java.lang.reflect.InvocationTargetException
                                                                             at java.lang.reflect.Constructor.constructNative(Native Method)
                                                                             at java.lang.reflect.Constructor.newInstance(Constructor.java:417)
                                                                             at android.view.LayoutInflater.createView(LayoutInflater.java:587)
                                                                             at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:687) 
                                                                             at android.view.LayoutInflater.rInflate(LayoutInflater.java:746) 
                                                                             at android.view.LayoutInflater.inflate(LayoutInflater.java:489) 
                                                                             at android.view.LayoutInflater.inflate(LayoutInflater.java:396) 
                                                                             at android.view.LayoutInflater.inflate(LayoutInflater.java:352) 
                                                                             at android.support.v7.app.AppCompatDelegateImplV9.setContentView(AppCompatDelegateImplV9.java:284) 
                                                                             at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:140) 
                                                                             at com.example.carlo.clashofschools.MainActivity.onCreate(MainActivity.java:37) 
                                                                             at android.app.Activity.performCreate(Activity.java:5008) 
                                                                             at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1079) 
                                                                             at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2023) 
                                                                             at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2084) 
                                                                             at android.app.ActivityThread.access$600(ActivityThread.java:130) 
                                                                             at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1195) 
                                                                             at android.os.Handler.dispatchMessage(Handler.java:99) 
                                                                             at android.os.Looper.loop(Looper.java:137) 
                                                                             at android.app.ActivityThread.main(ActivityThread.java:4745) 
                                                                             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:786) 
                                                                             at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553) 
                                                                             at dalvik.system.NativeStart.main(Native Method) 
                                                                          Caused by: android.content.res.Resources$NotFoundException: Resource is not a Drawable (color or path): TypedValue{t=0x1/d=0x7f02005a a=2 r=0x7f02005a}
                                                                             at android.content.res.Resources.loadDrawable(Resources.java:1892)
                                                                             at android.content.res.Resources.getDrawable(Resources.java:659)
                                                                             at android.support.v4.content.ContextCompat.getDrawable(ContextCompat.java:346)
                                                                             at android.support.v7.widget.AppCompatDrawableManager.getDrawable(AppCompatDrawableManager.java:197)
                                                                             at android.support.v7.widget.AppCompatDrawableManager.getDrawable(AppCompatDrawableManager.java:185)
                                                                             at android.support.v7.content.res.AppCompatResources.getDrawable(AppCompatResources.java:100)
                                                                             at android.support.v7.view.menu.MenuItemImpl.getIcon(MenuItemImpl.java:421)
                                                                             at android.support.design.internal.NavigationMenuPresenter$NavigationMenuAdapter.prepareMenuItems(NavigationMenuPresenter.java:505)
                                                                             at android.support.design.internal.NavigationMenuPresenter$NavigationMenuAdapter.update(NavigationMenuPresenter.java:446)
                                                                             at android.support.design.internal.NavigationMenuPresenter.updateMenuView(NavigationMenuPresenter.java:112)
                                                                             at android.support.design.widget.NavigationView.inflateMenu(NavigationView.java:248)
                                                                             at android.support.design.widget.NavigationView.<init>(NavigationView.java:171)
                                                                             at android.support.design.widget.NavigationView.<init>(NavigationView.java:97)
                                                                             at java.lang.reflect.Constructor.constructNative(Native Method) 
                                                                             at java.lang.reflect.Constructor.newInstance(Constructor.java:417) 
                                                                             at android.view.LayoutInflater.createView(LayoutInflater.java:587) 
                                                                             at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:687) 
                                                                             at android.view.LayoutInflater.rInflate(LayoutInflater.java:746) 
                                                                             at android.view.LayoutInflater.inflate(LayoutInflater.java:489) 
                                                                             at android.view.LayoutInflater.inflate(LayoutInflater.java:396) 
                                                                             at android.view.LayoutInflater.inflate(LayoutInflater.java:352) 
                                                                             at android.support.v7.app.AppCompatDelegateImplV9.setContentView(AppCompatDelegateImplV9.java:284) 
                                                                             at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:140) 
                                                                             at com.example.carlo.clashofschools.MainActivity.onCreate(MainActivity.java:37) 
                                                                             at android.app.Activity.performCreate(Activity.java:5008) 
                                                                             at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1079) 
                                                                             at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2023) 
                                                                             at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2084) 
                                                                             at android.app.ActivityThread.access$600(ActivityThread.java:130) 
                                                                             at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1195) 
                                                                             at android.os.Handler.dispatchMessage(Handler.java:99) 
                                                                             at android.os.Looper.loop(Looper.java:137) 
                                                                             at android.app.ActivityThread.main(ActivityThread.java:4745) 
                                                                             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:786) 
                                                                             at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553) 
                                                                             at dalvik.system.NativeStart.main(Native Method) 

I suppose the problem is with the Gradle build settings. This is my app build.gradle:

apply plugin: 'com.android.application'

android {
    compileSdkVersion 24
    buildToolsVersion "24.0.3"
    defaultConfig {
        applicationId "com.example.carlo.application"
        minSdkVersion 15
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
        exclude group: 'com.android.support', module: 'support-annotations'
    })
    compile 'com.android.support:appcompat-v7:24.2.1'
    compile 'com.android.support:design:24.2.1'
    compile 'com.android.support:support-v4:24.2.1'
    compile 'com.android.support:cardview-v7:24.2.1'
    testCompile 'junit:junit:4.12'
    compile 'com.android.support:gridlayout-v7:24.2.1'
}

and my project build.gradle:

buildscript {
    repositories {
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:2.2.1'

        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
}

allprojects {
    repositories {
        jcenter()
    }
}

task clean(type: Delete) {
    delete rootProject.buildDir
}
Carlo
  • 13
  • 2
  • Have you tried answers here: http://stackoverflow.com/questions/30709419/error-inflating-class-android-support-design-widget-navigationview? – Shobhit Puri Oct 23 '16 at 23:39
  • There's a `Resources$NotFoundException` at ```com.example.carlo.clashofschools.MainActivity.onCreate(MainActivity.java:37)```.. have you checked that out? – Gino Mempin Oct 24 '16 at 01:23
  • Per [the compileSdkVersion blog post](https://medium.com/google-developers/picking-your-compilesdkversion-minsdkversion-targetsdkversion-a098a0341ebd), compileSdkVersion does not ever change runtime behavior and should always be on the latest available. – ianhanniballake Oct 24 '16 at 01:42

1 Answers1

1

The error message has a few critical lines in it:

Caused by: android.content.res.Resources$NotFoundException: Resource is not a Drawable (color or path)
  ...
  at android.support.v7.view.menu.MenuItemImpl.getIcon(MenuItemImpl.java:421)
  ...
  at android.support.design.widget.NavigationView.inflateMenu(NavigationView.java:248)

So this has nothing to do with gradle but with one of the icons you use in your NavigationView not being found. Double check that your icons are valid on API 16 (i.e., they are not only found in a drawable-v21 folder for instance).

ianhanniballake
  • 191,609
  • 30
  • 470
  • 443