2016-10-23 3 views
1

J'écris une application dans Android Studio. Il compile et fonctionne parfaitement sur Marshmallow, mais lorsque j'essaie de l'exécuter avec un émulateur Jelly Bean (API 16), il échoue. J'ai également essayé de changer le compileSdkVersion à 16 et par conséquent également changer toutes les dépendances avec les versions plus anciennes, mais cela ne fonctionne toujours pas. Pouvez-vous m'aider?Compatibilité de l'API Android Studio Gradle

C'est l'erreur:

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)  

Je suppose que le problème est avec les paramètres construire Gradle. Ceci est mon application 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' 
} 

et mon projet 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 
} 
+0

Avez-vous essayé des réponses ici: http://stackoverflow.com/questions/30709419/error-inflating-class-android-support-design-widget-navigationview? –

+0

Il y a 'Resources $ NotFoundException' à' '' com.example.carlo.clashofschools.MainActivity.onCreate (MainActivity.java:37) '' '.. l'avez-vous vérifié? –

+0

Pour [l'article de blog compileSdkVersion] (https://medium.com/google-developers/picking-your-compilesdkversion-minsdkversion-targetsdkversion-a098a0341ebd), compileSdkVersion ne modifie jamais le comportement d'exécution et doit toujours être sur la dernière version disponible. – ianhanniballake

Répondre

1

Le message d'erreur a quelques lignes critiques: il

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) 

Cela a donc rien à voir avec Gradle mais avec l'une des icônes que vous utilisez dans votre NavigationView ne pas être trouvé. Vérifiez que vos icônes sont valides sur API 16 (c'est-à-dire qu'elles ne se trouvent pas uniquement dans un dossier drawable-v21 par exemple).

+0

Merci! C'était exactement ça! –