web-dev-qa-db-ja.com

クラスcom.google.Android.material.textfield.TextInputLayoutの膨張中にエラーが発生しました

これは私のアプリのテーマです:<style name="AppTheme" parent="Theme.MaterialComponents.Light.NoActionBar">

目的のテーマを使用していないために発生したインフレートエラーが発生しました。 Manifestでは、このエラーが発生したアクティビティのテーマを上書きしなかったため、styles.xmlで定義されたAppThemeが使用されます。

エラー:

 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)

そして、これは私の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">

そして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は29で、material_design_components_version = '1.1.0-alpha08'を使用します

編集:

app/gradleから

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

マニフェスト:

<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">

テーマ:

<!-- 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

私は同じ問題に直面しています。問題はマテリアルバージョンにあります。バージョンalpha06を変更してみてください。修正する必要があります。

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