首页 > 解决方案 > 二进制 XML 文件第 73 行:膨胀类按钮时出错

问题描述

这个问题对我来说一直很痛苦,我不完全确定是什么原因造成的,任何帮助都将不胜感激。

 java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.tencil/com.example.tencil.login}: android.view.InflateException: Binary XML file line #73 in com.example.tencil:layout/activity_login: Binary XML file line #73 in com.example.tencil:layout/activity_login: Error inflating class Button

 Caused by: android.view.InflateException: Binary XML file line #73 in com.example.tencil:layout/activity_login: Binary XML file line #73 in com.example.tencil:layout/activity_login: Error inflating class Button
 Caused by: android.view.InflateException: Binary XML file line #73 in com.example.tencil:layout/activity_login: Error inflating class Button
 Caused by: java.lang.IllegalArgumentException: The style on this component requires your app theme to be Theme.AppCompat (or a descendant).

现在我已经无数次地用谷歌搜索了这个问题,但我看不出我哪里出错了,任何帮助都将不胜感激。

<Button
    android:id="@+id/btn_login"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_below="@id/password"
    android:layout_marginLeft="20dp"
    android:layout_marginTop="15dp"
    android:layout_marginRight="20dp"
    android:backgroundTint="#14b9d5"
    android:fontFamily="@font/roboto_regular"
    android:text="@string/login"
    android:textColor="@android:color/white" />
   <!--  android:background="@drawable/btn_custom"-->

现在得到这个问题:

Hey Team, 

我现在有这个问题: 原因:java.lang.IllegalStateException:您需要在此活动中使用 Theme.AppCompat 主题(或后代)。

enter code here

标签: javaandroidxml

解决方案


我希望这有帮助。

主题修复。转到 res/values/styles.xml 并确保名称为“AppTheme”的样式的父项是“Theme.AppCompat”

<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
    <!-- 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:windowNoTitle">true</item>
    <item name="android:windowActionBar">false</item>
    <item name="android:windowFullscreen">true</item>
    <item name="android:windowContentOverlay">@null</item>
</style>

如果您使用不同的样式,它的父级也必须是“Theme.AppCompat”,如下所示。

<style name="Theme.AppCompat.Light.NoActionBar.FullScreen" parent="@style/Theme.AppCompat.Light.NoActionBar">
    <item name="android:windowNoTitle">true</item>
    <item name="android:windowActionBar">false</item>
    <item name="android:windowFullscreen">true</item>
    <item name="android:windowContentOverlay">@null</item>
</style>

检查您的 AndroidManifest.xml 并找到活动。确保它引用具有“Theme.AppCompat”父级的样式,如下所示

    <activity
        android:name=".Activities.MyActivity" android:theme="@style/Theme.AppCompat.Light.NoActionBar.FullScreen" />

推荐阅读