简体   繁体   中英

Error: Inflating class com.google.android.material.textfield.TextInputLayout

I am getting the error, here is my XML file

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    tools:context=".BMIActivity">

    <androidx.appcompat.widget.Toolbar
        android:id="@+id/toolbar_bmi_activity"
        android:layout_width="match_parent"
        android:layout_height="?android:attr/actionBarSize"
        android:background="#FFFFFF" />

    <RadioGroup
        android:id="@+id/rgUnits"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_below="@id/toolbar_bmi_activity"
        android:layout_margin="10dp"
        android:background="@drawable/drawable_radio_group_tab_background"
        android:orientation="horizontal">

        <RadioButton
            android:id="@+id/rbMetricUnits"
            android:layout_width="0dp"
            android:layout_height="35dp"
            android:layout_weight="0.50"
            android:background="@drawable/drawable_units_tab_selector"
            android:button="@null"
            android:checked="true"
            android:gravity="center"
            android:text="METRIC UNITS"
            android:textColor="@drawable/drawable_units_tab_text_color_selector"
            android:textSize="16sp"
            android:textStyle="bold" />

        <RadioButton
            android:id="@+id/rbUsUnits"
            android:layout_width="0dp"
            android:layout_height="35dp"
            android:layout_weight="0.50"
            android:background="@drawable/drawable_units_tab_selector"
            android:button="@null"
            android:checked="false"
            android:gravity="center"
            android:text="US UNITS"
            android:textColor="@drawable/drawable_units_tab_text_color_selector"
            android:textSize="16sp"
            android:textStyle="bold" />
    </RadioGroup>

    <LinearLayout
        android:id="@+id/llUnitsView"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_below="@id/rgUnits"
        android:orientation="vertical"
        android:padding="10dp">

        <LinearLayout
            android:id="@+id/llMetricUnitsView"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="vertical">

            <com.google.android.material.textfield.TextInputLayout
                android:id="@+id/tilMetricUnitWeight"
                style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox"
                android:layout_width="match_parent"
                android:layout_height="wrap_content">

                <androidx.appcompat.widget.AppCompatEditText
                    android:id="@+id/etMetricUnitWeight"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:hint="WEIGHT (in kg)"
                    android:inputType="numberDecimal"
                    android:textSize="16sp" />
            </com.google.android.material.textfield.TextInputLayout>

            <com.google.android.material.textfield.TextInputLayout
                android:id="@+id/tilMetricUnitHeight"
                style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_marginTop="10dp">

                <androidx.appcompat.widget.AppCompatEditText
                    android:id="@+id/etMetricUnitHeight"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:hint="HEIGHT (in cm)"
                    android:inputType="numberDecimal"
                    android:textSize="16sp" />
            </com.google.android.material.textfield.TextInputLayout>
        </LinearLayout>

        <LinearLayout
            android:id="@+id/llUsUnitsView"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="vertical"
            android:visibility="gone"
            tools:visibility="visible">

            <com.google.android.material.textfield.TextInputLayout
                android:id="@+id/tilUsUnitWeight"
                style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox"
                android:layout_width="match_parent"
                android:layout_height="wrap_content">

                <androidx.appcompat.widget.AppCompatEditText
                    android:id="@+id/etUsUnitWeight"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:hint="WEIGHT (in lbs)"
                    android:inputType="numberDecimal"
                    android:textSize="16sp" />
            </com.google.android.material.textfield.TextInputLayout>

            <LinearLayout
                android:id="@+id/llUsUnitsHeight"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_marginTop="10dp"
                android:baselineAligned="false"
                android:orientation="horizontal">

                <com.google.android.material.textfield.TextInputLayout
                    android:id="@+id/tilUsUnitHeightFeet"
                    style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox"
                    android:layout_width="0dp"
                    android:layout_height="wrap_content"
                    android:layout_marginEnd="5dp"
                    android:layout_weight="1">

                    <androidx.appcompat.widget.AppCompatEditText
                        android:id="@+id/etUsUnitHeightFeet"
                        android:layout_width="match_parent"
                        android:layout_height="wrap_content"
                        android:hint="Feet"
                        android:inputType="number"
                        android:textSize="16sp" />
                </com.google.android.material.textfield.TextInputLayout>

                <com.google.android.material.textfield.TextInputLayout
                    android:id="@+id/tilUsUnitHeightInch"
                    style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox"
                    android:layout_width="0dp"
                    android:layout_height="wrap_content"
                    android:layout_marginStart="5dp"
                    android:layout_weight="1">

                    <androidx.appcompat.widget.AppCompatEditText
                        android:id="@+id/etUsUnitHeightInch"
                        android:layout_width="match_parent"
                        android:layout_height="wrap_content"
                        android:hint="Inch"
                        android:inputType="number"
                        android:textSize="16sp" />
                </com.google.android.material.textfield.TextInputLayout>

            </LinearLayout>
        </LinearLayout>

        <LinearLayout
            android:id="@+id/llDiplayBMIResult"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginTop="25dp"
            android:orientation="vertical"
            android:visibility="visible"
            tools:visibility="visible">

            <TextView
                android:id="@+id/tvYourBMI"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:gravity="center"
                android:text="YOUR BMI"
                android:textAllCaps="true"
                android:visibility="invisible"
                android:textSize="16sp" />

            <TextView
                android:id="@+id/tvBMIValue"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_marginTop="5dp"
                android:gravity="center"
                android:textSize="18sp"
                android:textStyle="bold"
                tools:text="15.00" />

            <TextView
                android:id="@+id/tvBMIType"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_marginTop="5dp"
                android:gravity="center"
                android:textSize="18sp"
                tools:text="Normal" />

            <TextView
                android:id="@+id/tvBMIDescription"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_marginTop="5dp"
                android:gravity="center"
                android:textSize="18sp"
                tools:text="Normal" />
        </LinearLayout>

        <Button
            android:id="@+id/btnCalculateUnits"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_gravity="bottom"
            android:layout_marginTop="35dp"
            android:background="@color/colorAccent"
            android:text="CALCULATE"
            android:textColor="#FFFFFF"
            android:textSize="18sp" />
    </LinearLayout>
</RelativeLayout>

and here is styles.xml

<resources>

    <!-- Base application theme. -->
    <style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
        <!-- Customize your theme here. -->
        <item name="colorPrimary">@color/colorPrimary</item>
        <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
        <item name="colorAccent">@color/colorAccent</item>
    </style>
</resources>

Here is the stacktrace

2021-04-29 16:49:39.077 5682-5682/? I/nminutesworkou: Not late-enabling -Xcheck:jni (already on)
2021-04-29 16:49:39.090 5682-5682/? I/nminutesworkou: Unquickening 12 vdex files!
2021-04-29 16:49:39.100 5682-5682/? W/nminutesworkou: Unexpected CPU variant for X86 using defaults: x86
2021-04-29 16:49:39.434 5682-5682/com.example.sevenminutesworkout D/NetworkSecurityConfig: No Network Security Config specified, using platform default
2021-04-29 16:49:39.436 5682-5682/com.example.sevenminutesworkout D/NetworkSecurityConfig: No Network Security Config specified, using platform default
2021-04-29 16:49:39.466 5682-5710/com.example.sevenminutesworkout D/libEGL: loaded /vendor/lib/egl/libEGL_emulation.so
2021-04-29 16:49:39.472 5682-5710/com.example.sevenminutesworkout D/libEGL: loaded /vendor/lib/egl/libGLESv1_CM_emulation.so
2021-04-29 16:49:39.478 5682-5710/com.example.sevenminutesworkout D/libEGL: loaded /vendor/lib/egl/libGLESv2_emulation.so
2021-04-29 16:49:39.585 5682-5682/com.example.sevenminutesworkout W/nminutesworkou: Accessing hidden method Landroid/view/View;->computeFitSystemWindows(Landroid/graphics/Rect;Landroid/graphics/Rect;)Z (greylist, reflection, allowed)
2021-04-29 16:49:39.588 5682-5682/com.example.sevenminutesworkout W/nminutesworkou: Accessing hidden method Landroid/view/ViewGroup;->makeOptionalFitsSystemWindows()V (greylist, reflection, allowed)
2021-04-29 16:49:39.655 5682-5708/com.example.sevenminutesworkout D/HostConnection: HostConnection::get() New Host Connection established 0xf6a1f110, tid 5708
2021-04-29 16:49:39.659 5682-5708/com.example.sevenminutesworkout D/HostConnection: HostComposition ext ANDROID_EMU_CHECKSUM_HELPER_v1 ANDROID_EMU_native_sync_v2 ANDROID_EMU_native_sync_v3 ANDROID_EMU_native_sync_v4 ANDROID_EMU_dma_v1 ANDROID_EMU_direct_mem ANDROID_EMU_host_composition_v1 ANDROID_EMU_host_composition_v2 ANDROID_EMU_vulkan ANDROID_EMU_deferred_vulkan_commands ANDROID_EMU_vulkan_null_optional_strings ANDROID_EMU_vulkan_create_resources_with_requirements ANDROID_EMU_YUV_Cache ANDROID_EMU_async_unmap_buffer ANDROID_EMU_vulkan_ignored_handles ANDROID_EMU_vulkan_free_memory_sync ANDROID_EMU_vulkan_shader_float16_int8 ANDROID_EMU_vulkan_async_queue_submit GL_OES_vertex_array_object GL_KHR_texture_compression_astc_ldr ANDROID_EMU_host_side_tracing ANDROID_EMU_async_frame_commands ANDROID_EMU_gles_max_version_2 
2021-04-29 16:49:39.661 5682-5708/com.example.sevenminutesworkout W/OpenGLRenderer: Failed to choose config with EGL_SWAP_BEHAVIOR_PRESERVED, retrying without...
2021-04-29 16:49:39.670 5682-5708/com.example.sevenminutesworkout D/EGL_emulation: eglCreateContext: 0xf6a1fb20: maj 2 min 0 rcv 2
2021-04-29 16:49:39.674 5682-5708/com.example.sevenminutesworkout D/EGL_emulation: eglMakeCurrent: 0xf6a1fb20: ver 2 0 (tinfo 0xf6d70170) (first time)
2021-04-29 16:49:39.698 5682-5708/com.example.sevenminutesworkout I/Gralloc4: mapper 4.x is not supported
2021-04-29 16:49:39.700 5682-5708/com.example.sevenminutesworkout D/HostConnection: createUnique: call
2021-04-29 16:49:39.700 5682-5708/com.example.sevenminutesworkout D/HostConnection: HostConnection::get() New Host Connection established 0xf6a1fb90, tid 5708
2021-04-29 16:49:39.722 5682-5708/com.example.sevenminutesworkout D/goldfish-address-space: allocate: Ask for block of size 0x100
2021-04-29 16:49:39.723 5682-5708/com.example.sevenminutesworkout D/goldfish-address-space: allocate: ioctl allocate returned offset 0x3fbcae000 size 0x2000
2021-04-29 16:49:39.728 5682-5708/com.example.sevenminutesworkout D/HostConnection: HostComposition ext ANDROID_EMU_CHECKSUM_HELPER_v1 ANDROID_EMU_native_sync_v2 ANDROID_EMU_native_sync_v3 ANDROID_EMU_native_sync_v4 ANDROID_EMU_dma_v1 ANDROID_EMU_direct_mem ANDROID_EMU_host_composition_v1 ANDROID_EMU_host_composition_v2 ANDROID_EMU_vulkan ANDROID_EMU_deferred_vulkan_commands ANDROID_EMU_vulkan_null_optional_strings ANDROID_EMU_vulkan_create_resources_with_requirements ANDROID_EMU_YUV_Cache ANDROID_EMU_async_unmap_buffer ANDROID_EMU_vulkan_ignored_handles ANDROID_EMU_vulkan_free_memory_sync ANDROID_EMU_vulkan_shader_float16_int8 ANDROID_EMU_vulkan_async_queue_submit GL_OES_vertex_array_object GL_KHR_texture_compression_astc_ldr ANDROID_EMU_host_side_tracing ANDROID_EMU_async_frame_commands ANDROID_EMU_gles_max_version_2 
2021-04-29 16:49:44.812 5682-5682/com.example.sevenminutesworkout D/AndroidRuntime: Shutting down VM
2021-04-29 16:49:44.822 5682-5682/com.example.sevenminutesworkout E/AndroidRuntime: FATAL EXCEPTION: main
    Process: com.example.sevenminutesworkout, PID: 5682
    java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.sevenminutesworkout/com.example.sevenminutesworkout.BMIActivity}: android.view.InflateException: Binary XML file line #67 in com.example.sevenminutesworkout:layout/activity_bmi: Binary XML file line #67 in com.example.sevenminutesworkout:layout/activity_bmi: Error inflating class com.google.android.material.textfield.TextInputLayout
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3449)
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3601)
        at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:85)
        at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135)
        at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2066)
        at android.os.Handler.dispatchMessage(Handler.java:106)
        at android.os.Looper.loop(Looper.java:223)
        at android.app.ActivityThread.main(ActivityThread.java:7656)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:592)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:947)
     Caused by: android.view.InflateException: Binary XML file line #67 in com.example.sevenminutesworkout:layout/activity_bmi: Binary XML file line #67 in com.example.sevenminutesworkout:layout/activity_bmi: Error inflating class com.google.android.material.textfield.TextInputLayout
     Caused by: android.view.InflateException: Binary XML file line #67 in com.example.sevenminutesworkout:layout/activity_bmi: 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:343)
        at android.view.LayoutInflater.createView(LayoutInflater.java:852)
        at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:1004)
        at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:959)
        at android.view.LayoutInflater.rInflate(LayoutInflater.java:1121)
        at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:1082)
        at android.view.LayoutInflater.rInflate(LayoutInflater.java:1124)
        at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:1082)
        at android.view.LayoutInflater.rInflate(LayoutInflater.java:1124)
        at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:1082)
        at android.view.LayoutInflater.inflate(LayoutInflater.java:680)
        at android.view.LayoutInflater.inflate(LayoutInflater.java:532)
        at android.view.LayoutInflater.inflate(LayoutInflater.java:479)
        at androidx.appcompat.app.AppCompatDelegateImpl.setContentView(AppCompatDelegateImpl.java:696)
        at androidx.appcompat.app.AppCompatActivity.setContentView(AppCompatActivity.java:170)
        at com.example.sevenminutesworkout.BMIActivity.onCreate(BMIActivity.kt:24)
        at android.app.Activity.performCreate(Activity.java:8000)
        at android.app.Activity.performCreate(Activity.java:7984)
        at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1309)
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3422)
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3601)
        at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:85)
        at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135)
        at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2066)
        at android.os.Handler.dispatchMessage(Handler.java:106)
        at android.os.Looper.loop(Looper.java:223)
        at android.app.ActivityThread.main(ActivityThread.java:7656)
2021-04-29 16:49:44.824 5682-5682/com.example.sevenminutesworkout E/AndroidRuntime:     at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:592)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:947)
     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:243)
        at com.google.android.material.internal.ThemeEnforcement.checkMaterialTheme(ThemeEnforcement.java:217)
        at com.google.android.material.internal.ThemeEnforcement.checkCompatibleTheme(ThemeEnforcement.java:145)
        at com.google.android.material.internal.ThemeEnforcement.obtainTintedStyledAttributes(ThemeEnforcement.java:115)
        at com.google.android.material.textfield.TextInputLayout.<init>(TextInputLayout.java:463)
        at com.google.android.material.textfield.TextInputLayout.<init>(TextInputLayout.java:422)
            ... 32 more

I've tried to change AppCompat to MaterialComponents but it doesn't work. But when I point to LinearLayout tag (parent of com.google.android.material.textfield.TextInputLayout), it shows the error with a red line, and it disappears when I remove LinearLayout tag away. Is there any problem when I use too many LinearLayout stacks up each other?

Did you add material dependency in your app level build.gradle file?

If not you need to add this in your gradle file.

api 'com.google.android.material:material:<VERSION>'

make sure to add the material dependency in your app level build.gradle file and change the

<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">

to

<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM