2

Lorsque j'essaie de créer l'application, le fichier android.view.InflateException s'affiche dans FloatingActionButton? Je ne sais vraiment pas ce qui cause l'erreur.Erreur lors du gonflement de la classe android.support.design.widget.FloatingActionButton dans Android

Login.xml

<?xml version="1.0" encoding="utf-8"?> 

<android.support.design.widget.CoordinatorLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:fitsSystemWindows="true" 
    android:background="@drawable/bg_image" > 
<RelativeLayout 
    android:layout_width="match_parent" 
    android:layout_height="match_parent"> 

    <LinearLayout 
     android:id="@+id/lLayout_logincontainer" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_centerInParent="true" 
     android:layout_margin="40dp" 
     android:orientation="vertical"> 
     <ImageView 
      android:layout_width="130dp" 
      android:layout_height="125dp" 
      android:src="@drawable/project"/> 

     <android.support.design.widget.TextInputLayout 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:layout_marginTop="20dp"> 


      <EditText 
       android:id="@+id/aTxt_UserName" 
       style="@style/edittextstyle" 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:hint="User Name" 
       android:imeOptions="actionNext" 
       android:textColorHint="@color/white" 
       > 

      </EditText> 


     </android.support.design.widget.TextInputLayout> 

     <!-- Password Label --> 
     <android.support.design.widget.TextInputLayout 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:layout_marginBottom="8dp" 
      android:layout_marginTop="8dp"> 

      <EditText 
       android:id="@+id/eTxt_PassWord" 
       style="@style/edittextstyle" 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:hint="Password" 
       android:inputType="textPassword" 
       android:textColorHint="@color/white" 
       android:textColor="@color/white" /> 

     </android.support.design.widget.TextInputLayout> 

     <android.support.v7.widget.AppCompatButton 
      android:id="@+id/btn_login" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_gravity="left" 
      android:layout_marginTop="3dp" 
      android:background="@drawable/button_shape" 
      android:padding="12dp" 
      android:text="Login" 
      android:textAllCaps="false" 
      android:textColor="#ffffff" /> 
    </LinearLayout> 


</RelativeLayout> 
    <android.support.design.widget.FloatingActionButton 
     android:id="@+id/fab" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_marginBottom="20dp" 
     android:layout_gravity="bottom|end" 
     android:layout_marginRight="@dimen/fab_margin" 
     android:visibility="visible" 
     app:backgroundTint="@color/colorTrade_2" 
     app:elevation="6dp" 
     app:pressedTranslationZ="12dp" 
     app:fabSize="normal" 
     app:rippleColor="@android:color/transparent" 
     android:src="@drawable/ic_user_add" /> 

</android.support.design.widget.CoordinatorLayout> 

styles.xml

<resources> 
    <style name="AppBaseTheme" parent="MyMaterialTheme.Base"> 
     </style> 
    <style name="MyMaterialTheme.Base" parent="Theme.AppCompat.Light.DarkActionBar"> 
     <item name="windowNoTitle">true</item> 
     <item name="windowActionBar">false</item> 
     <item name="colorPrimary">@color/colorPrimary</item> 
     <item name="colorPrimaryDark">@color/colorPrimaryDark</item> 
     <item name="colorAccent">@color/colorAccent</item> 
     <item name="android:textColor">@color/colorPrimaryDark</item> 
     <item name="android:itemBackground">@color/white</item> 
    </style> 
    <style name="AppTheme.NoActionBar"> 
     <item name="windowActionBar">false</item> 
     <item name="windowNoTitle">true</item> 
    </style> 
    <style name="AppTheme.AppBarOverlay" parent="ThemeOverlay.AppCompat.Dark.ActionBar" /> 
    <style name="AppTabTextAppearance" parent="TextAppearance.Design.Tab"> 
     <item name="android:textSize">12sp</item> 
     <item name="textAllCaps">false</item> 
    </style> 
    <style name="AppTheme.PopupOverlay" parent="ThemeOverlay.AppCompat.Light" /> 
    <style name="edittextstyle"> 
     <item name="android:textColor">@color/white</item> 
     <item name="android:textSize">14sp</item> 
     <item name="android:padding">10dp</item> 
     <item name="android:singleLine">true</item> 
     <item name="android:textColorHint">@color/white</item> 
     <item name="android:inputType">textFilter</item> 
    </style> 
    <style name="userProfileText"> 
     <item name="android:textColor">@color/white</item> 
     <item name="android:textSize">14sp</item> 
     <item name="android:padding">5dp</item> 
    </style> 
</resources> 

AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?> 
<manifest 
xmlns:android="http://schemas.android.com/apk/res/android" package="com.trade.seems"> 
<uses-library android:name="com.google.android.maps" android:required="true" /> 
<application android:allowBackup="true" 
    android:name=".utils.MyApplication" 
      android:isolatedProcess="true" 
    android:icon="@mipmap/ic_launcher" 
    android:label="@string/app_name" 
    android:supportsRtl="true" 
    android:largeHeap="true" 
    android:theme="@style/AppTheme"> 
    <meta-data android:name="com.google.android.gms.version" 
     android:value="@integer/google_play_services_version" /> 
    <meta-data android:name="com.google.android.geo.API_KEY" 
     android:value="@string/google_api_key" /> 
    <activity android:name=".uil.SplashActivity" 
     android:screenOrientation="sensorPortrait"> 
     <intent-filter> 
       <action android:name="android.intent.action.MAIN" /> 
       <category android:name="android.intent.category.LAUNCHER" /> 
      </intent-filter> 
    </activity> 
    <activity android:name=".ual.login.LoginActivity" 
     android:screenOrientation="sensorPortrait"/> 
</application> 
</manifest> 

build.gradle
apply plugin: 'com.android.application' 
android { 
    compileSdkVersion 23 
    buildToolsVersion '23.0.3' 
    useLibrary 'org.apache.http.legacy' 
    defaultConfig { 
     applicationId "com.trade.seems" 
     minSdkVersion 16 
     targetSdkVersion 23 
     versionCode 1 
     versionName "1.0" 
     multiDexEnabled true 

    } 
    packagingOptions { 
     exclude 'META-INF/DEPENDENCIES.txt' 
     exclude 'META-INF/LICENSE.txt' 
     exclude 'META-INF/NOTICE.txt' 
     exclude 'META-INF/NOTICE' 
     exclude 'META-INF/LICENSE' 
     exclude 'META-INF/DEPENDENCIES' 
     exclude 'META-INF/notice.txt' 
     exclude 'META-INF/license.txt' 
     exclude 'META-INF/dependencies.txt' 
     exclude 'META-INF/maven/ch.acra/acra/pom.xml' 
     exclude 'META-INF/maven/ch.acra/acra/pom.properties' 

    } 
    buildTypes { 
     release { 
      minifyEnabled false 
      proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 
     } 
     debug { 
     } 
    } 
    dexOptions { 
     javaMaxHeapSize "2g" 
    } 
} 

dependencies { 
    testCompile 'junit:junit:4.12' 
    compile files('libs/picasso-2.5.2.jar') 
    compile files('libs/httpclient-4.3.6.jar') 
    compile files('libs/httpcore-4.3.3.jar') 
    compile files('libs/httpmime-4.3.6.jar') 
    compile files('libs/YouTubeAndroidPlayerApi.jar') 
    compile fileTree(include: ['*.jar'], dir: 'libs') 
    /*Support Libraries */ 
    compile project(':autocomplete_library') 
    compile project(':ViewPagerIndicator-Library') 
    /*Third party Libraries */ 
    compile 'es.guiguegon:gallerymodule:1.3.1' 
    compile 'de.hdodenhof:circleimageview:2.0.0' 
    compile 'com.nineoldandroids:library:2.4.+' 
    compile 'com.makeramen:roundedimageview:2.0.1' 
    //Library to handle Material design for all Version of android 
    compile 'com.rengwuxian.materialedittext:library:2.1.4' 
    //Library Glide is to handle Images Instead of picasso 
    compile 'com.github.bumptech.glide:glide:3.5.2' 
    compile 'com.mcxiaoke.volley:library-aar:1.0.0' 


    /*Google Android Support Library*/ 
    compile 'com.google.android.gms:play-services-maps:9.4.0' 
    compile 'com.google.android.gms:play-services-location:9.4.0' 
    compile 'com.android.support:multidex:1.0.0' 
    compile 'com.android.support:appcompat-v7:23.1.1' 
    compile 'com.android.support:design:23.1.1' 
    compile 'com.android.support:cardview-v7:23.1.1' 
    compile 'com.android.support:recyclerview-v7:23.1.1' 
    compile 'com.android.support:support-v4:23.1.1' 
} 

erreur complète Trace

com.trade.seems E/AndroidRuntime: FATAL EXCEPTION: main Process: com.trade.seemys, PID: 8225 java.lang.RuntimeException: Unable to start activityComponentInfo{com.tradezap.seemysteps/com.trade.seems.ual.login.LoginActivity}: android.view.InflateException: Binary XML file line #84: Binary XML file line #84: Error inflating class android.support.design.widget.FloatingActionButton 
                       at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2416) 
                       at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2476) 
                       at android.app.ActivityThread.-wrap11(ActivityThread.java) 
                       at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1344) 
                       at android.os.Handler.dispatchMessage(Handler.java:102) 
                       at android.os.Looper.loop(Looper.java:148) 
                       at android.app.ActivityThread.main(ActivityThread.java:5417) 
                       at java.lang.reflect.Method.invoke(Native Method) 
                       at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726) 
                       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616) 
                      Caused by: android.view.InflateException: Binary XML file line #84: Binary XML file line #84: Error inflating class android.support.design.widget.FloatingActionButton 
                       at android.view.LayoutInflater.inflate(LayoutInflater.java:539) 
                       at android.view.LayoutInflater.inflate(LayoutInflater.java:423) 
                       at android.view.LayoutInflater.inflate(LayoutInflater.java:374) 
                       at android.support.v7.app.AppCompatDelegateImplV9.setContentView(AppCompatDelegateImplV9.java:284) 
                       at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:140) 
                       at com.trade.seems.ual.login.LoginActivity.onCreate(LoginActivity.java:55) 
                       at android.app.Activity.performCreate(Activity.java:6251) 
                       at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1107) 
                       at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2369) 
                       at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2476)  
                       at android.app.ActivityThread.-wrap11(ActivityThread.java)  
                       at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1344)  
                       at android.os.Handler.dispatchMessage(Handler.java:102)  
                       at android.os.Looper.loop(Looper.java:148)  
                       at android.app.ActivityThread.main(ActivityThread.java:5417)  
                       at java.lang.reflect.Method.invoke(Native Method)  
                       at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)  
                       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)  
                      Caused by: android.view.InflateException: Binary XML file line #84: Error inflating class android.support.design.widget.FloatingActionButton 
                       at android.view.LayoutInflater.createView(LayoutInflater.java:645) 
                       at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:764) 
                       at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:704) 
                       at android.view.LayoutInflater.rInflate(LayoutInflater.java:835) 
                       at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:798) 
                       at android.view.LayoutInflater.inflate(LayoutInflater.java:515) 
                       at android.view.LayoutInflater.inflate(LayoutInflater.java:423)  
                       at android.view.LayoutInflater.inflate(LayoutInflater.java:374)  
                       at android.support.v7.app.AppCompatDelegateImplV9.setContentView(AppCompatDelegateImplV9.java:284)  
                       at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:140)  
                       at com.trade.seems.ual.login.LoginActivity.onCreate(LoginActivity.java:55)  
                       at android.app.Activity.performCreate(Activity.java:6251)  
                       at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1107)  
                       at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2369)  
                       at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2476)  
                       at android.app.ActivityThread.-wrap11(ActivityThread.java)  
                       at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1344)  
                       at android.os.Handler.dispatchMessage(Handler.java:102)  
                       at android.os.Looper.loop(Looper.java:148)  
                       at android.app.ActivityThread.main(ActivityThread.java:5417)  
                       at java.lang.reflect.Method.invoke(Native Method)  
                       at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)  
                       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)  
                      Caused by: java.lang.reflect.InvocationTargetException 
                       at java.lang.reflect.Constructor.newInstance(Native Method) 
                       at android.view.LayoutInflater.createView(LayoutInflater.java:619) 
                       at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:764)  
                       at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:704)  
                       at android.view.LayoutInflater.rInflate(LayoutInflater.java:835)  
                       at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:798)  
                       at android.view.LayoutInflater.inflate(LayoutInflater.java:515)  
                       at android.view.LayoutInflater.inflate(LayoutInflater.java:423)  
                       at android.view.LayoutInflater.inflate(LayoutInflater.java:374)  
                       at android.support.v7.app.AppCompatDelegateImplV9.setContentView(AppCompatDelegateImplV9.java:284)  
                       at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:140)  
                       at com.trade.seems.ual.login.LoginActivity.onCreate(LoginActivity.java:55)  
                       at android.app.Activity.performCreate(Activity.java:6251)  
                       at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1107)  
                       at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2369)  
                       at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2476)  
                       at android.app.ActivityThread.-wrap11(ActivityThread.java)  
                       at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1344)  
                       at android.os.Handler.dispatchMessage(Handler.java:102)  
                       at android.os.Looper.loop(Looper.java:148)  
                       at android.app.ActivityThread.main(ActivityThread.java:5417)  
                       at java.lang.reflect.Method.invoke(Native Method)  
                       at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)  
                       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)  
                      Caused by: java.lang.NoSuchMethodError: No direct method <init>(Landroid/widget/ImageView;Landroid/support/v7/widget/AppCompatDrawableManager;)V in class Landroid/support/v7/widget/AppCompatImageHelper; or its super classes (declaration of 'android.support.v7.widget.AppCompatImageHelper' appears in /data/app/com.tradezap.seemysteps-1/base.apk) 
                       at android.support.design.widget.FloatingActionButton.<init>(FloatingActionButton.java:133) 
                       at android.support.design.widget.FloatingActionButton.<init>(FloatingActionButton.java:110) 
                       at java.lang.reflect.Constructor.newInstance(Native Method)  
                       at android.view.LayoutInflater.createView(LayoutInflater.java:619)  
                       at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:764)  
                       at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:704)  
                       at android.view.LayoutInflater.rInflate(LayoutInflater.java:835)  
                       at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:798)  
                       at android.view.LayoutInflater.inflate(LayoutInflater.java:515)  
                       at android.view.LayoutInflater.inflate(LayoutInflater.java:423)  
                       at android.view.LayoutInflater.inflate(LayoutInflater.java:374)  
                       at android.support.v7.app.AppCompatDelegateImplV9.setContentView(AppCompatDelegateImplV9.java:284)  
                       at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:140)  
                       at com.trade.seems.ual.login.LoginActivity.onCreate(LoginActivity.java:55)  
                       at android.app.Activity.performCreate(Activity.java:6251)  
                       at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1107)  
                       at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2369)  
                       at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2476)  
                       at android.app.ActivityThread.-wrap11(ActivityThread.java)  
                       at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1344)  
                       at android.os.Handler.dispatchMessage(Handler.java:102)  
                       at android.os.Looper.loop(Looper.java:148)  
                       at android.app.ActivityThread.main(ActivityThread.java:5417)  
                       at java.lang.reflect.Method.invoke(Native Method)  
                       at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)  
                       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)  
+0

@TimCastelijns peut vous guidez celui que j'ai manqué, s'il vous plaît –

+0

Ajouter le code xml dans lequel votre bouton fab est présent. –

+0

Pouvez-vous poster ce fichier de mise en page où vous utilisez FloatingActionButton – Raghavendra

Répondre

8

Dans votre cas, votre problème est dans styles.xml, le nom de votre thème de base est AppBaseTheme. Changez-le en AppTheme car vous pouvez voir que vous avez utilisé AppTheme dans votre fichier Mainfest.

J'ai énuméré toutes les raisons qui peuvent causer la classe android.support.design.widget.FloatingActionButton. Veuillez lire attentivement les points.

  1. Le bouton FAB est Design Library Cpmponent. Votre activité doit s'étendre AppCompatActivity au lieu de Activité.

  2. Votre thème d'activité devrait également être approprié Thème.AppCompat thème. FAB a également besoin de colorAccent. Assurez-vous de les avoir dans votre fichier styles.xml.

    <!-- Base application theme. --> 
    <style name="AppTheme" parent="Base.AppTheme"> 
    <!-- Customize your theme here. --> 
    </style> 
    
    <style name="Base.AppTheme" parent="Theme.AppCompat.Light.DarkActionBar"> 
    <item name="android:colorPrimary">@color/primary</item> 
    <item name="android:colorPrimaryDark">@color/primary_dark</item> 
    <item name="android:colorAccent">@color/accent</item> 
    </style> 
    
  3. Utilisation application: backgroundTint = "@ couleur/your_color" au lieu d'Android: backgroundTint.

  4. Ne manquez pas l'ajout de la bibliothèque de conception dans votre projet fichier build.gradle

    dependencies { 
    compile 'com.android.support:appcompat-v7:23.1.1' 
    compile 'com.android.support:design:23.1.1' 
    ... 
    } 
    
  5. mise à jour de soutien aux bibliothèques sur SDK Manager dans Outils> Android support Repository et support Android Library

Espérons que cela résout votre erreur.

+0

Merci pour le code, mais j'utilise déjà ce genre de style. –

+0

Mon projet entier ayant ce problème, FAB gonfler l'erreur, Juste maintenant j'ai commenté FAB sur l'écran de connexion Conception, maintenant erreur montrant dans un autre écran. Avez-vous fait face à une exception comme celle-ci? –

+0

Pas de Vishal je viens de déployer mon ancien code et de faire à nouveau maintenant. C'est un gros mal de tête maintenant. –

1

Si vous utilisez backgroundTint sur l'API 21+ alors il suffit d'utiliser cette ligne dans FloatingActionButton (app au lieu de android):

app:backgroundTint="@color/colorAccent" 

Voici la disposition de l'échantillon

<?xml version="1.0" encoding="utf-8"?> 
<android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent"> 

    <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:layout_margin="@dimen/fab_margin" 
     app:elevation="6dp" 
     android:tint="#FFF" 
     app:srcCompat="@drawable/ic_add_black_24dp" /> 

</android.support.design.widget.CoordinatorLayout>