Ошибка Вам нужно использовать тему Theme.AppCompat (или потомок) с активностью - PullRequest
0 голосов
/ 30 января 2019

Я работаю над приложением для Android, так как оно работает нормально с темной панелью действий, но когда я изменяю это значение на панель без действий, приложение вылетает и показывает эту ошибку в 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>

Вот файл манифеста

<?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>

1 Ответ

0 голосов
/ 30 января 2019

Решение состоит в том, чтобы изменить наследование Java с ActionBarActivity на Activity и оставить тему диалога в манифесте без изменений. Значение не Theme.AppCompat

В вашем случае проблема связана с файлом манифеста, которого у вас нетуказанный android:theme="@style/AppTheme.NoActionBar" тег внутренних действий

Перейдите к файлу манифеста и замените всплеск активности следующим:

<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>

Внутри класса активности всплеска сделайте следующее:

public class SplashActivity extends AppCompatActivity
...