widgets tipos studio mejores gratis best android android-widget

mejores - tipos de widgets android studio



ClassCastException inexplicable en android.widget.ProgressBar.onRestoreInstanceState (4)

En mi caso, mi retrato xml tiene Relativelayout y ScrollView de landscape xml con la misma ID.

En mi clase de actividad trato de inflar el diseño y asignarlo en ViewGroup

Entonces, cuando ocurre la rotación de la pantalla, arroja: java.lang.ClassCastException: android.view.AbsSavedState$1 no se puede convertir a android.widget.ScrollView$SavedState

Es porque ScrollView extiende FrameLayout mientras que Relativelayout extiende ViewGroup

Así que simplemente envuelvo el paisaje xml con Relativelayout y resuelvo el problema

He tenido mi aplicación en la tienda por un tiempo, pero parece que se cuelga ocasionalmente de acuerdo con los informes de fallos en Developer Console, diciendo: java.lang.ClassCastException in android.widget.ProgressBar.onRestoreInstanceState con el seguimiento de la pila:

java.lang.RuntimeException: Unable to start activity ComponentInfo{com.company.myapp/com.mycompany.myapp.activity.MyActivity}: java.lang.ClassCastException: android.view.AbsSavedState$1 cannot be cast to android.widget.ProgressBar$SavedState at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1996) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2023) at android.app.ActivityThread.access$600(ActivityThread.java:127) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1174) at android.os.Handler.dispatchMessage(Handler.java:99) at android.os.Looper.loop(Looper.java:137) at android.app.ActivityThread.main(ActivityThread.java:4503) at java.lang.reflect.Method.invokeNative(Native Method) at java.lang.reflect.Method.invoke(Method.java:511) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:809) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:576) at dalvik.system.NativeStart.main(Native Method) Caused by: java.lang.ClassCastException: android.view.AbsSavedState$1 cannot be cast to android.widget.ProgressBar$SavedState at android.widget.ProgressBar.onRestoreInstanceState(ProgressBar.java:1093) at android.view.View.dispatchRestoreInstanceState(View.java:9975) at android.view.ViewGroup.dispatchRestoreInstanceState(ViewGroup.java:2408) at android.view.ViewGroup.dispatchRestoreInstanceState(ViewGroup.java:2408) at android.view.View.restoreHierarchyState(View.java:9951) at com.android.internal.policy.impl.PhoneWindow.restoreHierarchyState(PhoneWindow.java:1611) at android.app.Activity.onRestoreInstanceState(Activity.java:908) at android.app.Activity.performRestoreInstanceState(Activity.java:880) at android.app.Instrumentation.callActivityOnRestoreInstanceState(Instrumentation.java:1102) at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1974) ... 11 more

El motivo de estos bloqueos se me escapa y no puedo reproducirlo en ninguno de mis dispositivos. No tengo un onRestoreInstanceState reemplazado en cualquier lugar tampoco. ¿Alguien puede señalarme en una dirección que tenga sentido?


He visto problemas similares a esto antes, y es porque tienes dos identificadores que comparten el mismo nombre.

El onRestoreInstanceState ha realizado el método findViewById y la primera vista que se encontró no fue ProgressView .

Verifique que su aplicación no reutilice la misma ID en dos lugares diferentes


Recibí este mensaje de error de rotación cuando tenía un GridView en dos diseños diferentes, un retrato y el otro paisaje. Uno estaba contenido en un FrameLayout y el otro no, es decir, estaba solo en el archivo de diseño. Cuando eliminé FrameLayout, todo funcionó bien. (Nota: el GridView se usó en el lado principal de un diseño maestro / vista).

El mensaje no apareció hasta que actualicé mi configuración de Gradle a esto:

android { compileSdkVersion 23 buildToolsVersion ''23.0.2'' defaultConfig { applicationId ''com.example.android.redacted.app'' minSdkVersion 16 targetSdkVersion 23 versionCode 1 versionName "1.0" } dependencies { compile fileTree(include: [''*.jar''], dir: ''libs'') compile ''com.android.support:appcompat-v7:23.1.1'' }

Antes eran esto:

android { compileSdkVersion 21 buildToolsVersion ''21.1.2'' defaultConfig { applicationId ''com.example.android.redacted.app'' minSdkVersion 11 targetSdkVersion 21 versionCode 1 versionName "1.0" } dependencies { compile fileTree(include: [''*.jar''], dir: ''libs'') compile ''com.android.support:appcompat-v7:21.0.2'' }

Parece que Marshmallow es más implacable con este error.


Tuve un problema diferente: en un diseño, la raíz era un ScrollView, mientras que en el otro, la raíz era un RelativeView que contenía ScrollView. Todos los identificadores de widgets eran idénticos y no había duplicados. Al girar, el registro de bloqueo fue:

java.lang.ClassCastException: android.view.AbsSavedState$1 cannot be cast to android.widget.ScrollView$SavedState

Una vez que coincidí con los diseños (por lo que en ambos, la raíz era RelativeLayout o ScrollView), la rotación funcionó bien.

No estoy seguro de por qué esto causaría un colapso por lo que cualquier apreciación sería apreciada ...