Java.lang.IllegalStateException: ActionBarImpl kann nur mit einem kompatiblen Fenster-Dekor-Layout verwendet werden

Innerhalb der letzten Tage sehe ich zunehmende Fehlermeldungen, die identisch klingen. Ich benutze keine Tabletten ActionBar – ich entwickle nur für Handys.

Was ist der Grund für diese Abstürze?

  • Trennen Sie eine Bluetooth-Buchse in Android
  • Das Layout des Bildschirms verschiebt sich, wenn die Tastatur angezeigt wird
  • Der richtige Weg, um Cross-Plattform-RTMP Streaming / Play-App zu machen. Phonegap Livu Plugin?
  • Android Studio - Import von externer Bibliothek / Jar
  • Wie kann ich einen String mit GZIPOutputStream zip und entpacken, der mit .Net kompatibel ist?
  • Fügen Sie den Ladebildschirm beim Starten der Android-Anwendung hinzu
  • Hier ist eine komplette Spur:

    java.lang.RuntimeException: Failure delivering result ResultInfo{who=null, request=8995, result=0, data=null} to activity {xy.yyyy.app.android/xy.yyyy.app.Main}: java.lang.IllegalStateException: ActionBarImpl can only be used with a compatible window decor layout at android.app.ActivityThread.deliverResults(ActivityThread.java:2818) at android.app.ActivityThread.handleSendResult(ActivityThread.java:2861) at android.app.ActivityThread.access$1000(ActivityThread.java:122) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1054) at android.os.Handler.dispatchMessage(Handler.java:99) at android.os.Looper.loop(Looper.java:132) at android.app.ActivityThread.main(ActivityThread.java:4123) at java.lang.reflect.Method.invokeNative(Native Method) at java.lang.reflect.Method.invoke(Method.java:491) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:841) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:599) at dalvik.system.NativeStart.main(Native Method) Caused by: java.lang.IllegalStateException: ActionBarImpl can only be used with a compatible window decor layout at com.android.internal.app.ActionBarImpl.init(ActionBarImpl.java:214) at com.android.internal.app.ActionBarImpl.<init>(ActionBarImpl.java:200) at android.app.Dialog.show(Dialog.java:255) at xy.yyyy.app.MyProgressDialog.show(MyProgressDialog.java:33) at xy.yyyy.app.MyProgressDialog.show(MyProgressDialog.java:23) at xy.yyyy.app.Main$FetchTask.onPreExecute(Main.java:19) at android.os.AsyncTask.executeOnExecutor(AsyncTask.java:549) at android.os.AsyncTask.execute(AsyncTask.java:499) at xy.yyyy.app.Main.onActivityResult(Main.java:60) at android.app.Activity.dispatchActivityResult(Activity.java:4581) at android.app.ActivityThread.deliverResults(ActivityThread.java:2814) ... 11 more 

    Dies ist eine typische AsyncTask, die ich aus einer Aktivität verwenden, um eine lange Aufgabe mit einem ProgressDialog zu starten:

     private class DeleteTask extends AsyncTask<Void, Void, Boolean> { @Override protected void onPreExecute () { if (!isRunning) { progressDialog = MyProgressDialog.show(MyActivity.this, null, null, true, false); } } @Override protected Boolean doInBackground(final Void... strings) { Boolean rc = false; if (!isRunning) { isRunning = true; processDelete(); } return rc; } @Override protected void onPostExecute(final Boolean result) { if (progressDialog != null) { progressDialog.cancel(); } progressDialog = null; setResult(RESULT_OK); finish(); isRunning = false; } } 

    Hier ist meine MyProgressDialog-Klasse:

     public class MyProgressDialog extends Dialog { public MyProgressDialog(final Context context) { super(context, R.style.MyProgressDialog); } public static MyProgressDialog show(final Context context, final CharSequence title, final CharSequence message) { return show(context, title, message, false); } public static MyProgressDialog show(final Context context, final CharSequence title, final CharSequence message, final boolean indeterminate) { return show(context, title, message, indeterminate, false, null); } public static MyProgressDialog show(final Context context, final CharSequence title, final CharSequence message, final boolean indeterminate, final boolean cancelable) { return show(context, title, message, indeterminate, cancelable, null); } public static MyProgressDialog show(final Context context, final CharSequence title, final CharSequence message, final boolean indeterminate, final boolean cancelable, final OnCancelListener onCancelListener) { MyProgressDialog dialog = new MyProgressDialog(context); dialog.setCancelable(cancelable); dialog.setOnCancelListener(onCancelListener); dialog.setTitle(title); dialog.addContentView(new ProgressBar(context), new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT)); dialog.show(); return dialog; } } 

    Vielen Dank im Voraus.

    BEARBEITEN:

    Hier ist der gebrauchte Stil:

     <style name="MyProgressDialog"> <item name="android:background">@android:color/transparent</item> <item name="android:backgroundDimEnabled">false</item> <item name="android:windowAnimationStyle">@android:style/Animation.Dialog</item> <item name="android:windowBackground">@android:color/transparent</item> <item name="android:windowContentOverlay">@null</item> <item name="android:windowFrame">@null</item> <item name="android:windowIsFloating">true</item> <item name="android:windowSoftInputMode">stateUnspecified|adjustPan</item> <item name="android:windowTitleStyle">@null</item> </style> 

    Hier ist ein Screenshot von diesem ProgressDialog:

    Bildbeschreibung hier eingeben

    LÖSUNG:

    Musste dies dem Stil hinzufügen:

     parent="@android:style/Theme.Dialog" 

  • Lokale Bild-Caching-Lösung für Android: Square Picasso vs Universal Image Loader
  • Deaktivieren Sie die Tastatureingabe auf Android TimePicker
  • HTML5 Offline App auf Android Geräten
  • Wie kann ich mein node.js Projekt auf Android?
  • Android, Webview User Agent vs Browser User Agent
  • Die Dialoggröße stimmt nicht mit dem Hintergrundbild überein
  • Das Android ist ein Google Android Fan-Website, Alles ├╝ber Android Phones, Android Wear, Android Dev und Android Spiele Apps und so weiter.