您需要使用 Theme.AppCompat 主题错误而不更改代码

You need to use a Theme.AppCompat theme error without changing code

我有一个奇怪的问题,我没有更改 MainActivity 的代码,但仍然得到 运行 时间异常:

You need to use a Theme.AppCompat theme (or descendant) with this activity.

我的 MainActivity onCreate:

@Override
protected void onCreate(Bundle savedInstanceState) {
    setTheme(R.style.AppTheme);

    StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();
    StrictMode.setThreadPolicy(policy);

    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    instance = this;
    instance.setRequestedOrientation (ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);

    initializeSystem();
    initializeUI();

    test();
}

我使用的样式:

<style name="AppTheme" speParent="Theme.AppCompat.Light.NoActionBar">
    <!-- Customize your theme here. -->
    <item name="colorAccent">@color/dialog_progress_foreground</item>
    <item name="android:popupMenuStyle">@style/menuStyle</item>
</style>

<style name="AppTheme.Splashscreen" speParent="AppTheme">
    <item name="android:windowTranslucentStatus">true</item>
    <item name="android:windowTranslucentNavigation">true</item>
    <item name="android:windowBackground">@drawable/splashscreen_drawable</item>

</style>

现在,奇怪的部分。我正在使用版本控制系统,所以我尝试了在此之前的提交。它有效并且不会崩溃。 该提交在 MainActivity 的测试函数中显示了一些对话框。他们在最后一次提交中被注释掉了。 当我 return 它编码(显示对话框)时,代码仍然崩溃。

当然我改了一些其他的类,但是没有在MainActivity中不用手动激活,所以不应该这样。

我真的很茫然。我想我可以回滚我的提交,但我非常不喜欢不了解发生了什么。

既然我使用了正确的样式,它应该可以工作吗?

看起来你在样式标签上打错了父 属性

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

<style name="AppTheme.Splashscreen" parent="AppTheme">
...
</style>