super.onCreate аварийно завершает работу после определения пользовательского стиля экрана-заставки для Activity?

Я хотел добавить SplashScreen в свое приложение и провел небольшое исследование по этому вопросу. В некоторых учебниках говорилось, что вы можете создать активность и с помощью некоторых таймеров показать ее на несколько секунд. Я не мог заставить их работать, а затем на этой странице Как мне сделать заставку? второй ответ с наибольшим количеством голосов сказал, что вместо отображения активности (и из-за этого не заменит белый / черный экран загрузки запуска, а вместо этого добавит больше задержек) вы должны вместо этого создать пользовательский стиль и назначьте его своей деятельности в файле манифеста. Я сделал это, создал новый стиль следующим образом:

<style name="splashScreenTheme" parent="Theme.AppCompat.NoActionBar">
    <item name="android:windowBackground">@drawable/launchscreen</item>
</style>

в styles.xml и изменил мой манифест на это:

    <application
    android:name=".EFBApp"
    android:allowBackup="true"
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name"
    android:theme="@style/AppTheme" >
    <activity
        android:name=".MainActivityDrawer"
        android:label="@string/app_name"
        android:screenOrientation="portrait"
        android:theme="@style/splashScreenTheme">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

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

Когда я запускаю свое приложение, я прекрасно вижу экран запуска, но затем оно вылетает. По точкам останова я обнаружил, что когда MainActivityDrawer (мой основной класс) попадает в super.onCreate(savedInstanceState); line затем происходит сбой (он переходит в класс ZygoteInit.java и после этого происходит сбой при отладке точки останова). Если я уберу строки android:theme в манифесте, он работает нормально, но при запуске показывает ужасный простой белый экран. Любые предложения или идеи? Большое спасибо.


person Pablo Quemé    schedule 04.01.2015    source источник
comment
опубликуйте logcat, и создание заставки может быть просто хорошим макетом, ожидающим перехода к следующему экрану, но опубликуйте logcat и некоторый соответствующий код, но если вы решили это, тогда нет проблем   -  person Elltz    schedule 05.01.2015


Ответы (1)


Итак, мне удалось сделать так, чтобы это не зависало, вместо того, чтобы назначать родителя как Theme.AppCompat.NoActionBar, я использовал только AppTheme, и теперь это работает. Надеюсь, это кому-нибудь поможет.

person Pablo Quemé    schedule 04.01.2015