web-dev-qa-db-fra.com

Erreur de gonflage de la conception du support Android de la classe

Ce que j'essaie de faire est d'utiliser la nouvelle bibliothèque de conception de support Android mentionnée ici: http://Android-developers.blogspot.com/2015/05/Android-design-support-library.html .

J'ai essayé d'utiliser le bouton d'action flottante comme suit dans ma mise en page XML (c'est d'où provient l'erreur ci-dessous):

<Android.support.design.widget.FloatingActionButton
    Android:id="@+id/fab"
    Android:layout_width="wrap_content"
    Android:layout_height="wrap_content"
    Android:layout_alignTop="@+id/adview"
    Android:layout_marginTop="500dp" />

Lorsque mon application est lancée, c'est l'erreur:

06-06 20:56:43.186    6405-6405/com.nick.app E/AndroidRuntime﹕ FATAL EXCEPTION: main
Process: com.nick.app, PID: 6405
Java.lang.RuntimeException: Unable to start activity ComponentInfo{com.nick.app/com.nick.app.MainActivity}: Android.view.InflateException: Binary XML file line #7: Error inflating class Android.support.design.widget.FloatingActionButton
        at Android.app.ActivityThread.performLaunchActivity(ActivityThread.Java:2306)
        at Android.app.ActivityThread.handleLaunchActivity(ActivityThread.Java:2366)
        at Android.app.ActivityThread.access$800(ActivityThread.Java:149)
        at Android.app.ActivityThread$H.handleMessage(ActivityThread.Java:1284)
        at Android.os.Handler.dispatchMessage(Handler.Java:102)
        at Android.os.Looper.loop(Looper.Java:135)
        at Android.app.ActivityThread.main(ActivityThread.Java:5290)
        at Java.lang.reflect.Method.invoke(Native Method)
        at Java.lang.reflect.Method.invoke(Method.Java:372)
        at com.Android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.Java:908)
        at com.Android.internal.os.ZygoteInit.main(ZygoteInit.Java:703)
 Caused by: Android.view.InflateException: Binary XML file line #7: Error inflating class Android.support.design.widget.FloatingActionButton
        at Android.view.LayoutInflater.createView(LayoutInflater.Java:633)
        at Android.view.LayoutInflater.createViewFromTag(LayoutInflater.Java:743)
        at Android.view.LayoutInflater.rInflate(LayoutInflater.Java:806)
        at Android.view.LayoutInflater.inflate(LayoutInflater.Java:504)
        at Android.view.LayoutInflater.inflate(LayoutInflater.Java:414)
        at Android.view.LayoutInflater.inflate(LayoutInflater.Java:365)
        at com.Android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.Java:401)
        at Android.app.Activity.setContentView(Activity.Java:2197)
        at com.nick.app.MainActivity.onCreate(MainActivity.Java:94)
        at Android.app.Activity.performCreate(Activity.Java:6020)
        at Android.app.Instrumentation.callActivityOnCreate(Instrumentation.Java:1105)
        at Android.app.ActivityThread.performLaunchActivity(ActivityThread.Java:2259)
            at Android.app.ActivityThread.handleLaunchActivity(ActivityThread.Java:2366)
            at Android.app.ActivityThread.access$800(ActivityThread.Java:149)
            at Android.app.ActivityThread$H.handleMessage(ActivityThread.Java:1284)
            at Android.os.Handler.dispatchMessage(Handler.Java:102)
            at Android.os.Looper.loop(Looper.Java:135)
            at Android.app.ActivityThread.main(ActivityThread.Java:5290)
            at Java.lang.reflect.Method.invoke(Native Method)
            at Java.lang.reflect.Method.invoke(Method.Java:372)
            at com.Android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.Java:908)
            at com.Android.internal.os.ZygoteInit.main(ZygoteInit.Java:703)

dans mon fichier build.gradle pour le module d'application, j'ai le compile 'com.Android.support:design:22.2.0' requis. De plus, les autres parties pertinentes du fichier build.gradle

compileSdkVersion 21
buildToolsVersion "21.1.1"
defaultConfig {
    ...
    minSdkVersion 16
    targetSdkVersion 21
    .....

Je devrais également noter que lorsque je vais dans la structure du projet -> dépendances et que j'essaie d'ajouter une dépendance de bibliothèque, je ne trouve pas "com.Android.support:design:22.2.0" lors de la recherche (je ne suis pas sûr si cela est nécessaire ajout de la dépendance dans le fichier build.gradle).

Enfin, dans mon gestionnaire de SDK, j'ai confirmé que "Android Support Repository" et "Android Support Library" sont à jour pour les versions 15 et 22.2, respectivement.

Y a-t-il des suggestions pour ce que je pourrais essayer d'autre?

J'ai trouvé cette réponse: https://stackoverflow.com/a/30557995/1489990 et j'ai essayé la solution, mais cela n'a pas résolu mon problème.

14
ez4nick

Si vous utilisez l'un des composants de la bibliothèque de conception, vous devez vous assurer que votre activité s'étend AppCompatActivity et utilise un thème Theme.AppCompat approprié. Notez que la FloatingActionButton s'appuie sur le colorAccent défini sur votre thème - assurez-vous que votre thème a bien été défini.

12
ianhanniballake

Cette erreur peut être due aux raisons mentionnées ci-dessous.

  1. Ce problème se produira probablement lorsque la version de votre bibliothèque appcompat et celle du support de conception ne correspondent pas.

Exemple de condition correspondante

  compile 'com.Android.support:appcompat-v7:24.2.0' // appcompat library

  compile 'com.Android.support:design:24.2.0' //design support library
  1. Votre fichier de thème dans les styles ne devrait pas avoir 

    <item name="colorPrimary">#4A0958</item>
    <item name="colorPrimaryDark">#4A0958</item>
    

    Cela devrait ressembler un peu à ça.

    <style name="AppTheme.Base" parent="Theme.AppCompat.Light.NoActionBar">
    
     <item name="colorPrimary">#4A0958</item>
     <item name="colorPrimaryDark">#4A0958</item>
     <item name="colorAccent">#4A0958</item>
    
    </style>
    
6
Vishal Puri

Si tout le reste ne fonctionne pas, mettez à niveau la version de la dépendance et la version. Dans votre fichier build.gradle:

compileSdkVersion 24

compile 'com.Android.support:appcompat-v7:24.2.0'
compile 'com.Android.support:design:24.2.0'
compile 'com.Android.support:recyclerview-v7:24.2.0'
compile 'com.Android.support:cardview-v7:24.2.0'
4
ssudaraka

J'ai eu le même problème. Je l'ai résolu construire le nettoyage et la reconstruction du projet. Lorsque je l'ai relancé, aucune exception de ce type n'a été lancée.

0
ryanafrish7

J'ai eu la même erreur. Après plus de recherche, j'ai la solution. Il suffit de changer build.gradle (Module: app)

apply plugin: 'com.Android.application'

Android {
    compileSdkVersion 24 // previous 23

    buildToolsVersion "24.0.2"

    defaultConfig {
        applicationId "com.ventrux.thevideoapp"
        minSdkVersion 15
        targetSdkVersion 24  // previous 23
        versionCode 1
        versionName "1.0"
        multiDexEnabled true

    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-Android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    testCompile 'junit:junit:4.12'
    compile 'org.jbundle.util.osgi.wrapped:org.jbundle.util.osgi.wrapped.org.Apache.http.client:4.1.2'
    compile 'com.Android.support:appcompat-v7:24.2.1'       // previous 23.2.1
    compile 'com.Android.support:design:24.2.1'          // previous 23.2.1

    compile files('libs/YouTubeAndroidPlayerApi.jar')
}

Xml pour FloatingActionButton

  <Android.support.design.widget.FloatingActionButton
            Android:id="@+id/fab"
            Android:layout_width="wrap_content"
            Android:layout_height="wrap_content"
            Android:layout_gravity="bottom|end"
            Android:src="@drawable/plus_iconaddvideo"
            Android:layout_marginRight="30dp"
            Android:layout_marginBottom="30dp"
            Android:layout_alignParentBottom="true"
            Android:layout_alignParentRight="true"
            Android:layout_alignParentEnd="true"
            Android:layout_marginEnd="30dp"
            />
0
Dharmendra Mishra