"RequestFeature () debe ser llamado antes de agregar el contenido" plantilla de detalle maestro
Comencé una nueva aplicación con la plantilla de detalle maestro.
Cuando intento la aplicación en mi tableta, utilizando el diseño de dos paneles, se bloquea con la excepción en el título cuando cambio la orientación de la tableta. Esto sólo ocurre si el fragmento de detalle tiene contenido.
- El fragmento secundario en el fragmento de visualizador de la vista desaparece después del intercambio
- ID duplicado con fragmento
- Implementación de desplazamiento entre pestañas mediante tab-host en Android
- Diferencia entre add () & replace () con el ciclo de vida de Fragment
- Añadir acción de botón en la notificación personalizada
El accidente está en línea super.onCreate
, ni siquiera estoy llamando requestFeature
, así que ni siquiera es mi código:
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_item_list); if (findViewById(R.id.item_detail_container) != null) { // The detail container view will be present only in the // large-screen layouts (res/values-large and // res/values-sw600dp). If this view is present, then the // activity should be in two-pane mode. mTwoPane = true; // In two-pane mode, list items should be given the // 'activated' state when touched. ((ItemListFragment) getSupportFragmentManager().findFragmentById( R.id.item_list)).setActivateOnItemClick(true); } }
Rastro de la pila:
12-14 23:18:44.716: E/AndroidRuntime(32065): FATAL EXCEPTION: main 12-14 23:18:44.716: E/AndroidRuntime(32065): Process: com.manor.barcam, PID: 32065 12-14 23:18:44.716: E/AndroidRuntime(32065): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.manor.barcam/com.manor.barcam.ItemListActivity}: android.util.AndroidRuntimeException: requestFeature() must be called before adding content 12-14 23:18:44.716: E/AndroidRuntime(32065): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2195) 12-14 23:18:44.716: E/AndroidRuntime(32065): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2245) 12-14 23:18:44.716: E/AndroidRuntime(32065): at android.app.ActivityThread.handleRelaunchActivity(ActivityThread.java:3738) 12-14 23:18:44.716: E/AndroidRuntime(32065): at android.app.ActivityThread.access$900(ActivityThread.java:135) 12-14 23:18:44.716: E/AndroidRuntime(32065): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1202) 12-14 23:18:44.716: E/AndroidRuntime(32065): at android.os.Handler.dispatchMessage(Handler.java:102) 12-14 23:18:44.716: E/AndroidRuntime(32065): at android.os.Looper.loop(Looper.java:136) 12-14 23:18:44.716: E/AndroidRuntime(32065): at android.app.ActivityThread.main(ActivityThread.java:5017) 12-14 23:18:44.716: E/AndroidRuntime(32065): at java.lang.reflect.Method.invokeNative(Native Method) 12-14 23:18:44.716: E/AndroidRuntime(32065): at java.lang.reflect.Method.invoke(Method.java:515) 12-14 23:18:44.716: E/AndroidRuntime(32065): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779) 12-14 23:18:44.716: E/AndroidRuntime(32065): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595) 12-14 23:18:44.716: E/AndroidRuntime(32065): at dalvik.system.NativeStart.main(Native Method) 12-14 23:18:44.716: E/AndroidRuntime(32065): Caused by: android.util.AndroidRuntimeException: requestFeature() must be called before adding content 12-14 23:18:44.716: E/AndroidRuntime(32065): at com.android.internal.policy.impl.PhoneWindow.requestFeature(PhoneWindow.java:249) 12-14 23:18:44.716: E/AndroidRuntime(32065): at android.app.Activity.requestWindowFeature(Activity.java:3298) 12-14 23:18:44.716: E/AndroidRuntime(32065): at android.support.v7.app.ActionBarActivityDelegateICS.onCreate(ActionBarActivityDelegateICS.java:63) 12-14 23:18:44.716: E/AndroidRuntime(32065): at android.support.v7.app.ActionBarActivity.onCreate(ActionBarActivity.java:98) 12-14 23:18:44.716: E/AndroidRuntime(32065): at com.manor.barcam.ItemListActivity.onCreate(ItemListActivity.java:54) 12-14 23:18:44.716: E/AndroidRuntime(32065): at android.app.Activity.performCreate(Activity.java:5231) 12-14 23:18:44.716: E/AndroidRuntime(32065): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087) 12-14 23:18:44.716: E/AndroidRuntime(32065): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2159) 12-14 23:18:44.716: E/AndroidRuntime(32065): ... 12 more
¿Cómo puedo resolverlo?
Gracias.
- Google Maps v2 se retrasa tras extraer su fragmento de la pila
- Usar getSupportFragmentManager () Dentro de PreferenceActivity
- Java.lang.IllegalStateException: No se puede realizar esta acción después de onSaveInstanceState
- Fragmento de Android La transacción con animación provoca que el flash blanco
- Paquete de compatibilidad con Android Fragmento como clase estática interna
- Cómo mostrar / ocultar fragmento con el dedo hacia arriba / hacia abajo como la aplicación androide de soundcloud
- ¿Cómo obtener una referencia a la última backstack estalló fragmento?
- Android ViewPager: fragmentos superpuestos cuando el ancho de página se establece en 90%
Tengo el mismo problema, pero sucedió cuando la aplicación fue eliminada en segundo plano por el sistema operativo. Tracé el problema a ActionBarActivityDelegateICS.java de appcompat donde se llama a requestWindowFeature () después de super.onCreate:
super.onCreate(savedInstanceState); if (mHasActionBar) { // If action bar is requested by inheriting from the appcompat theme, // the system will not know about that. So explicitly request for an action bar. mActivity.requestWindowFeature(WindowCompat.FEATURE_ACTION_BAR); } if (mOverlayActionBar) { mActivity.requestWindowFeature(WindowCompat.FEATURE_ACTION_BAR_OVERLAY); }
Así que importé el appcompat de git y cambié el código anterior para llamar al super.onCreate () después de .requestWindowFeature () que solucionó el problema. También envió un informe de errores a Google
Ninguno de ellos resolvió mi caso. Ése es porqué subo con una solución desagradable.
Mi aplicación se estaba estrellando cuando el android OS
mata a mi aplicación después de mucho tiempo en segundo plano.
Durante la depuración descubro que mi aplicación se está estrellando en super.onCreate(savedInstanceState);
Pero se bloquea sólo cuando el savedInstanceState
no es null
. Y no necesito ninguna entrada de usuario para ser guardado y repoblado. Por lo tanto, sólo hago llamada a super.onCreate(null)
si savedInstanceState
no es null
.
Y mi comentario va antes de esa línea
/* * This may be the wrong workaround!!! * It demands more research.. * But for now, if it solves the problem, then it is a solution :D * */ if(savedInstanceState!=null){ super.onCreate(null); } else { super.onCreate(savedInstanceState); }
Estará tratando de encontrar la solución adecuada para ello.
Acabo de ver esto en una de mis aplicaciones. En mi caso el culpable fue una llamada a getActivity().getActionBar()
en uno de mis fragmentos en onCreate()
. Esto tiene el efecto secundario de crear un contentView para usted si uno no existe.
Mover esa línea a onViewCreated()
resolvió el problema
Trate de usar getSupportActionBar();
En lugar de getActionBar();
- Anulación de androide: elipse en el subtítulo ActionBar
- Barra de herramientas de Android llena toda la pantalla