Android 应用物料主题时出错:无法启动活动组件信息

Android 应用物料主题时出错:无法启动活动组件信息,android,Android,错误日志: D/AndroidRuntime:关闭VM E/AndroidRuntime:致命异常: 主要的 流程:com.example.hetal13.material\u design\u demo,PID:2611 java.lang.RuntimeException:无法启动活动组件信息{com.example.hetal13.material\u design\u demo/com.example.hetal13.material\u design\u demo.MainActivi

错误日志:

D/AndroidRuntime:关闭VM E/AndroidRuntime:致命异常: 主要的 流程:com.example.hetal13.material\u design\u demo,PID:2611 java.lang.RuntimeException:无法启动活动组件信息{com.example.hetal13.material\u design\u demo/com.example.hetal13.material\u design\u demo.MainActivity}: java.lang.IllegalStateException:您需要使用Theme.AppCompat 此活动的主题(或后代)。 在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2325)上 位于android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2387) 在android.app.ActivityThread.access$800(ActivityThread.java:151) 在android.app.ActivityThread$H.handleMessage(ActivityThread.java:1303)上 位于android.os.Handler.dispatchMessage(Handler.java:102) 位于android.os.Looper.loop(Looper.java:135) 位于android.app.ActivityThread.main(ActivityThread.java:5254) 位于java.lang.reflect.Method.invoke(本机方法) 位于java.lang.reflect.Method.invoke(Method.java:372) 在com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903)上 位于com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698) 原因:java.lang.IllegalStateException:您需要将一个Theme.AppCompat主题(或子代)用于此 活动。 在android.support.v7.app.AppCompateDelegateImplV7.createSubDecor(AppCompateDelegateImplV7.java:343) 在android.support.v7.app.AppCompateDelegateImplV7.ensureSubDecor(AppCompateDelegateImplV7.java:312)上 在android.support.v7.app.AppCompateDelegateImplV7.setContentView(AppCompateDelegateImplV7.java:277) 位于android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:140) 位于com.example.hetal13.material\u design\u demo.MainActivity.onCreate(MainActivity.java:13) 位于android.app.Activity.performCreate(Activity.java:5990) 位于android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1106) 在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2278) 位于android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2387) 在android.app.ActivityThread.access$800(ActivityThread.java:151) 在android.app.ActivityThread$H.handleMessage(ActivityThread.java:1303)上 位于android.os.Handler.dispatchMessage(Handler.java:102) 位于android.os.Looper.loop(Looper.java:135) 位于android.app.ActivityThread.main(ActivityThread.java:5254) 位于java.lang.reflect.Method.invoke(本机方法) 位于java.lang.reflect.Method.invoke(Method.java:372) 在com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903)上 位于com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698) 申请终止

Style.xml:

<resources>

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

</resources>
activity_main.xml:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/activity_main"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"

    android:orientation="vertical"
    tools:context="com.example.hetal13.material_design_demo.MainActivity">

    <Button
        android:text="@string/button_submit"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/editText"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="46dp"
        android:id="@+id/button"
        />

    <EditText
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:inputType="textPersonName"
        android:ems="10"
        android:layout_marginTop="108dp"
        android:id="@+id/editText"

        android:textAlignment="center"
        tools:ignore="LabelFor"
        android:layout_alignParentTop="true"
        android:layout_centerHorizontal="true" />
</LinearLayout>

您需要Style.xml中执行以下更改。(您甚至可以尝试复制粘贴此代码段。很可能它会起作用。)


@颜色/原色
@颜色/原色暗
@颜色/颜色重音
根据您的日志,您只需要Theme.AppCompat Theme


希望这能帮助你使用它,确保它能解决你的问题

你可以照原样复制

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

    <!-- Customize your theme here. -->
    <item name="colorPrimary">@color/colorPrimary</item>
    <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
    <item name="colorAccent">@color/colorAccent</item>

    </style>

@颜色/原色
@颜色/原色暗
@颜色/颜色重音

但如果我想添加材质设计,该怎么办?这只是材质主题!只是向后兼容。我猜你刚刚开始安卓开发,所以我建议你看看谷歌官方文档,以便更好地理解**我们应该使用兼容的主题,这样棒棒糖前的设备也能获得一些物质上的触感**我强烈建议你去。如果你觉得它有用的话,请考虑一下投票和接受我的答案:但是我的模拟器太Lollipop版本,所以为什么我不能用这种方式使用材料设计?它与仿真器无关。在java代码中,您是这样扩展类的吗<代码>公共类MainActivity扩展AppCompatActivity可能是。因此,您可以看到您是从AppCompat扩展而不是使用AppCompat主题。
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
        <item name="colorPrimary">@color/colorPrimary</item>
        <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
        <item name="colorAccent">@color/colorAccent</item>
    </style>
    <style name="AppTheme"parent="Theme.MaterialComponents.Light.NoActionBar">

    <!-- Customize your theme here. -->
    <item name="colorPrimary">@color/colorPrimary</item>
    <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
    <item name="colorAccent">@color/colorAccent</item>

    </style>