android - 错误您需要将 Theme.AppCompat 主题(或后代)与 Activity 一起使用

标签 android performance android-studio runtime-error logcat

我正在开发 anroid 应用程序,因为它在深色操作栏下运行良好,但当我将其更改为无操作栏时,应用程序崩溃并在 logcat 中显示此错误。

Logcat Error

我对样式和 xml 文件进行了更改,但问题仍然存在。当我再次为 Dark 操作栏添加广告时,它开始正常工作。

我研究过的链接

Link1

这是我的样式文件

<resources>
<style name="AppTheme" parent="Theme.AppCompat.NoActionBar">
    <item name="colorPrimary">@color/colorPrimary</item>
    <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
    <item name="colorAccent">@color/colorAccent</item>
    <item name="android:textColor">@color/colorText</item>
    <item name="android:textColorHint">@color/colorText</item>
    <item name="colorControlNormal">@color/colorText</item>
    <item name="colorControlActivated">@color/colorText</item>
</style>

<resources>
<style name="AppTheme.NoActionBar">
    <item name="windowActionBar">false</item>
    <item name="windowNoTitle">true</item>
    <item name="android:windowDrawsSystemBarBackgrounds">true</item>
    <item name="android:statusBarColor">@android:color/transparent</item>
</style>

这是 list 文件

<?xml version="1.0" encoding="utf-8"?>

<application
    android:allowBackup="true"
    android:icon="@mipmap/ic_launcher"
    android:label="@string/app_name"
    android:supportsRtl="true"
    android:theme="@style/AppTheme">
    <activity
        android:name=".activities.SplashActivity"
        android:screenOrientation="portrait">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
    <activity
        android:name=".activities.WelcomeActivity"
        android:screenOrientation="portrait" />
    <activity
        android:name=".activities.LoginActivity"
        android:screenOrientation="portrait" />
    <activity
        android:name=".activities.RegisterActivity"
        android:screenOrientation="portrait" />
    <activity
        android:name=".activities.UsersListActivity"
        android:screenOrientation="portrait" />
</application>

最佳答案

解决方案是将 Java 继承从 ActionBarActivity 更改为 Activity,并在 list 中保留对话框主题,一个非 Theme.AppCompat 值

在你的情况下,问题出在你的 list 文件上,你没有在 Activity 标签内指定 android:theme="@style/AppTheme.NoActionBar"

转到您的 list 文件并将启动 Activity 替换为:

<activity
            android:name=".activities.SplashActivity"
            android:theme="@style/AppTheme.NoActionBar">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>

在您的启动 Activity 类中执行此操作:

public class SplashActivity extends AppCompatActivity

关于android - 错误您需要将 Theme.AppCompat 主题(或后代)与 Activity 一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54434710/

相关文章:

java - 检查 json 是否包含字符串值

java - Android Camera2 回调——图像似乎被裁剪

c# - 使用 mvvmcross 显示 View 模型时无法解析当前的顶级 Activity

java - 从 Java 内部测量单个方法性能的确切方法?

python - 最快的鞋带配方方法

多进程应用中的 Android Espresso 测试

android - 如何使用改造将成功的响应主体转换为特定类型?

与大表进行简单连接时的 MySQL 性能问题

android - Android studio 中的 BoofCV gradle 构建错误

android - 将位图转换为字节,反之亦然