web-dev-qa-db-fra.com

Erreur lors du gonflement de la classe com.google.Android.material.textfield.TextInputLayout

Voici le thème de mon application: <style name="AppTheme" parent="Theme.MaterialComponents.Light.NoActionBar">

J'ai eu une erreur de gonflement causée par le fait de ne pas utiliser le thème souhaité. Dans le Manifest je n'ai pas écrasé le thème de l'activité pour laquelle j'ai eu cette erreur, donc l'AppTheme a trouvé dans styles.xml est utilisé.

Erreur:

 Android.view.InflateException: Binary XML file line #122: Binary XML file line #122: Error inflating class com.google.Android.material.textfield.TextInputLayout
    Caused by: Android.view.InflateException: Binary XML file line #122: Error inflating class com.google.Android.material.textfield.TextInputLayout
    Caused by: Java.lang.reflect.InvocationTargetException
        at Java.lang.reflect.Constructor.newInstance0(Native Method)
        at Java.lang.reflect.Constructor.newInstance(Constructor.Java:334)
        at Android.view.LayoutInflater.createView(LayoutInflater.Java:647)
      ...
        at com.Android.internal.os.ZygoteInit.main(ZygoteInit.Java:807)
     Caused by: Java.lang.IllegalArgumentException: The style on this component requires your app theme to be Theme.MaterialComponents (or a descendant).
        at com.google.Android.material.internal.ThemeEnforcement.checkTheme(ThemeEnforcement.Java:240)
        at com.google.Android.material.internal.ThemeEnforcement.checkMaterialTheme(ThemeEnforcement.Java:215)
        at com.google.Android.material.internal.ThemeEnforcement.checkCompatibleTheme(ThemeEnforcement.Java:143)
        at com.google.Android.material.internal.ThemeEnforcement.obtainTintedStyledAttributes(ThemeEnforcement.Java:116)

Et voici mon xml:

  <com.google.Android.material.textfield.TextInputLayout
                        Android:id="@+id/inputFirstName"
                        style="@style/EditText.OutlinedBox"
                        Android:layout_width="match_parent"
                        Android:layout_height="wrap_content"
                        Android:layout_marginStart="16dp"
                        Android:layout_marginTop="10dp"
                        Android:layout_marginEnd="16dp"
                        Android:visibility="gone"
                        app:boxStrokeColor="@color/colorBrand"
                        app:layout_constraintEnd_toEndOf="parent"
                        app:layout_constraintStart_toStartOf="parent">

et le style EditText:

 <style name="EditText.OutlinedBox" parent="Widget.MaterialComponents.TextInputLayout.OutlinedBox">
        <item name="Android:minHeight">56dp</item>
        <item name="Android:textSize">18sp</item>
        <item name="Android:fontFamily">@font/nunito_regular</item>
        <item name="Android:textColorHint">@color/colorTextSecondary</item>
        <item name="hintTextColor">@color/colorBrand</item>
        <item name="hintEnabled">true</item>
    </style>

sdk cible de l'application est 29 et j'utilise material_design_components_version = '1.1.0-alpha08'

ÉDITER:

de app/gradle

    implementation(
        "androidx.appcompat:appcompat:$appcompat_version",
        "androidx.constraintlayout:constraintlayout:$constraintlayout_version",
        "com.google.Android.material:material:$material_design_components_version"
)

Manifeste:

<application
    Android:name=".application.BaseApplication"
    Android:allowBackup="true"
    Android:icon="@mipmap/ic_launcher"
    Android:label="@string/app_name"
    Android:roundIcon="@mipmap/ic_launcher_round"
    Android:supportsRtl="true"
    Android:theme="@style/AppTheme"
    Android:usesCleartextTraffic="true">

Thème:

<!-- Base application theme. -->
<style name="AppTheme" parent="Theme.MaterialComponents.Light.DarkActionBar">
    <!-- Customize your theme here. -->
    <item name="colorPrimary">@color/colorPrimary</item>
    <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
    <item name="colorAccent">@color/colorAccent</item>
    <item name="Android:windowLightStatusBar">true</item>
    <item name="Android:fontFamily">@font/nunito_regular</item>
    <item name="Android:lineSpacingExtra">0dp</item>
    <item name="Android:includeFontPadding">false</item>
    <item name="navigationIcon">@drawable/ic_back_dark</item>
    <item name="Android:windowBackground">@color/colorWhite</item>
    <item name="bottomSheetDialogTheme">@style/AppBottomSheetDialogTheme</item>
</style>
4
ghita

Je fais face au même problème. Le problème vient de la version matérielle. essayez de changer votre version alpha06 et cela devrait le corriger.

implementation 'com.google.Android.material:material:1.1.0-alpha06'
0
LionErez