错误您需要将 Theme.AppCompat 主题(或后代)与 activity 一起使用
Error You need to use a Theme.AppCompat theme (or descendant) with activity
我正在开发 anroid 应用程序,因为它 运行 可以使用深色操作栏,但是当我将其更改为无操作栏时,应用程序崩溃并在 logcat 中向我显示此错误。
我已经对样式和 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>
这是清单文件
<?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,并在清单中保留对话框主题,一个非 Theme.AppCompat 值
在你的情况下,问题出在你的清单文件上,你没有在活动标签android:theme="@style/AppTheme.NoActionBar"
中指定android:theme="@style/AppTheme.NoActionBar"
转到您的清单文件并将启动 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 class 这样做:
public class SplashActivity extends AppCompatActivity
我正在开发 anroid 应用程序,因为它 运行 可以使用深色操作栏,但是当我将其更改为无操作栏时,应用程序崩溃并在 logcat 中向我显示此错误。
我已经对样式和 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>
这是清单文件
<?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,并在清单中保留对话框主题,一个非 Theme.AppCompat 值
在你的情况下,问题出在你的清单文件上,你没有在活动标签android:theme="@style/AppTheme.NoActionBar"
中指定android:theme="@style/AppTheme.NoActionBar"
转到您的清单文件并将启动 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 class 这样做:
public class SplashActivity extends AppCompatActivity