Подтвердить что ты не робот

Активность не называлась финишем? (API 23)

Я получаю следующую ошибку, и я понятия не имею, почему это происходит.

Ошибка:

08-23 17:07:46.533  22454-22454/com.a.b.c E/AndroidRuntime﹕ FATAL EXCEPTION: main
    Process: com.a.b.c, PID: 22454
    java.lang.RuntimeException: Unable to resume activity {com.a.b.c/com.a.b.c.MainActivity}: java.lang.IllegalStateException: Activity {com.a.b.c/com.a.b.c.MainActivity} did not call finish() prior to onResume() completing
            at android.app.ActivityThread.performResumeActivity(ActivityThread.java:3103)
            at android.app.ActivityThread.handleResumeActivity(ActivityThread.java:3134)
            at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2481)
            at android.app.ActivityThread.-wrap11(ActivityThread.java)
            at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1344)
            at android.os.Handler.dispatchMessage(Handler.java:102)
            at android.os.Looper.loop(Looper.java:148)
            at android.app.ActivityThread.main(ActivityThread.java:5417)
            at java.lang.reflect.Method.invoke(Native Method)
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
     Caused by: java.lang.IllegalStateException: Activity {com.a.b.c/com.a.b.c.MainActivity} did not call finish() prior to onResume() completing
            at android.app.Activity.performResume(Activity.java:6324)
            at android.app.ActivityThread.performResumeActivity(ActivityThread.java:3092)
            at android.app.ActivityThread.handleResumeActivity(ActivityThread.java:3134)
            at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2481)
            at android.app.ActivityThread.-wrap11(ActivityThread.java)
            at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1344)
            at android.os.Handler.dispatchMessage(Handler.java:102)
            at android.os.Looper.loop(Looper.java:148)
            at android.app.ActivityThread.main(ActivityThread.java:5417)
            at java.lang.reflect.Method.invoke(Native Method)
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)

Код:

protected void onCreate(Bundle savedInstanceState) {
   super.onCreate(savedInstanceState);
    System.out.println("Started");
}

Я пытаюсь запустить код на AVD, работающем под управлением android 6.0 (API 23), работает на API 22.

4b9b3361

Ответ 1

Это ошибка в предварительном просмотре разработчика Android M. Подробнее

Ответ 2

У меня такая же проблема, такая же ошибка с

did not call finish() prior to onResume() completing 

сообщение об ошибке. Поэтому я создал v23\styles.xml

<style name="AppTheme" parent="android:Theme.Translucent">
...
</style>

в то время как обычный style.xml имеет

<style name="AppTheme" parent="android:Theme.NoDisplay">
...
</style>

Он отлично работает, больше не сработает. Однако я не знаю, насколько хорошо это решение, использовать Theme.Translucent в API 23, тем более что определяется как

Тема для полупрозрачных действий (на уровне API 10 и ниже).

Я действительно надеюсь, что они исправят эту ошибку.

Ответ 3

Я нашел обходное решение. Вызовите setVisible(true) в onStart():

@Override
protected void onStart() {
    super.onStart();
    setVisible(true);
}

Ответ 4

Моя невидимая активность показывает диалог подтверждения. Это привело к тому, что потерял внешний вид материала, когда я использовал android:Theme.Translucent.NoTitleBar.

Итак, основываясь на ответах выше и блоге CommonWare и определениях тем Android, я использую этот стиль, который расширяет обычную тему AppCompat.Light:

<style name="AppTheme.NoDisplay" parent="Theme.AppCompat.Light">
    <item name="android:windowBackground">@android:color/transparent</item>
    <item name="android:windowContentOverlay">@null</item>
    <item name="android:windowIsTranslucent">true</item>
    <item name="android:windowAnimationStyle">@android:style/Animation</item>
    <item name="android:windowDisablePreview">true</item>
    <item name="android:windowNoTitle">true</item>
</style>

Ответ 5

где android 23 > https://www.youtube.com/watch?v=NAcUGwCkrcs

манифеста:

android:theme="@android:style/Theme.Translucent.NoTitleBar"
Activity extends from Activity. Not AppCompatActivity.

и для версии >= 23

if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP){     
    getWindow().setStatusBarColor(getResources().getColor(android.R.color.transparent))}

Ответ 6

Попробуйте изменить targetSdkVersion на 22 в build.gradle. Theme.NoDisplay показывает ошибку в уровне api 23.