Android: java.land.NoSuchFieldError después de la actualización a SDK 23
He actualizado a SDK 23 y actualizado gradle.build a API 23, la biblioteca de soporte a 23.0.0, etc y ahora estoy recibiendo el siguiente error al intentar ejecutar la aplicación (compila muy bien).
java.lang.NoSuchFieldError: No instance field mFragments of type Landroid/support/v4/app/FragmentManagerImpl; in class Landroid/support/v4/app/Watson; or its superclasses (declaration of 'android.support.v4.app.Watson' appears in /data/app/com.my.app-1/base.apk) at android.support.v4.app.Watson.onCreatePanelMenu(Watson.java:50) at com.actionbarsherlock.ActionBarSherlock.callbackCreateOptionsMenu(ActionBarSherlock.java:560) at com.actionbarsherlock.internal.ActionBarSherlockNative.dispatchCreateOptionsMenu(ActionBarSherlockNative.java:64) at com.actionbarsherlock.app.SherlockFragmentActivity.onCreatePanelMenu(SherlockFragmentActivity.java:164) at com.android.internal.policy.impl.PhoneWindow.preparePanel(PhoneWindow.java:548) at com.android.internal.policy.impl.PhoneWindow.doInvalidatePanelMenu(PhoneWindow.java:917) at com.android.internal.policy.impl.PhoneWindow$1.run(PhoneWindow.java:258) at android.os.Handler.handleCallback(Handler.java:739) at android.os.Handler.dispatchMessage(Handler.java:95) at android.os.Looper.loop(Looper.java:135) at android.app.ActivityThread.main(ActivityThread.java:5221) at java.lang.reflect.Method.invoke(Native Method) at java.lang.reflect.Method.invoke(Method.java:372) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:899) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:694)
Volví a API 22 en todo y todavía consigo el error.
- Diferencia entre Actividad y FragmentActivity
- La aplicación se bloquea en rotación sin stackTrace
- Acceder a la barra de acción desde dentro de un fragmento
- Clase FileProvider de Android no encontrada en versiones de lanzamiento
- ViewPager setCurrentItem congela el subproceso de la interfaz de usuario
- Biblioteca de soporte de diseño de Android: NavigationView código fuente
- ¿Por qué AOSP agrega nuevas API para admitir bibliotecas sin agregarlas al SDK?
- ¿Por qué ContextThemeWrapper está ahora restringido al grupo Support Library?
- DialogFragment anidado múltiple de Android
- Java.lang.NoSuchFieldError: android.support.v7.appcompat
- ¿Cómo agregar la barra de acción de la biblioteca de soporte en PreferenceActivity?
- getSupportActionBar utilizando FragmentActivity
- Descarga de Manual de la Biblioteca de Soporte para Android
Hice algo como lo hiciste, pero encontré gradle puede resolver dependencias, en Bibliotecas Externas no puedo encontrar support-v4-23.0.0, support-v7-23.0.0 y otra lib que la versión es 23.0.0. Luego volví a compilar 'com.android.support:support-v4:22.2.0', el solucionador de problemas @mraviator
Gracias @ zmarties por la respuesta, quiero agregar los detalles y enlaces
- Eliminar 'com.actionbarsherlock: actionbarsherlock: 4.4.0@aar' de gradle
- ¡Descarga el módulo de actionbarsherlock desde este enlace !
- Compruebe que tiene 'com.android.support:support-v4:20.0.0' o 23
- Abra el módulo de actionbarsherlock src cambie FloatMath a Math en AnimatorProxy.java
- Abra el módulo de actionbarsherlock src create FragmentManagerImpl fragments = (FragmentManagerImpl) this.getSupportFragmentManager (); En Watson.java
- Reemplazar todas las ocurrencias de fragmentos mFragments
Gracias por las respuestas anteriores.
Uso de Google Play Services versión 8.1.0 en lugar de 8.4.0 resuelto en mi lado
Encontré que podría construir ActionBarSherlock usar el SDK 23 si hice los dos sistemas siguientes de cambios:
- En AnimatorProxy.java, reemplazar
FloatMath
llamadas deFloatMath
con sus llamadasMath
correspondientes - En Watson.java, reemplace el uso del campo
mFragments
con una variable localfragments
inicializados mediantegetActiveFragments(null)
y, a continuación, cambie las referencias demFragment
para usar la variable local
¿Ha cambiado la vista de tema en la disposición principal de la pestaña de diseño? Intente cambiarlo de nuevo a una vista de tema de Sherlock en la pestaña de diseño.
Tuve el mismo problema cuando el proyecto de importación eclipse a Android Studio
Esta es la mejor solución para mí
Encontré que podría construir ActionBarSherlock usar el SDK 23 si hice los dos sistemas siguientes de cambios:
En AnimatorProxy.java, reemplazar llamadas FloatMath con sus correspondientes llamadas matemáticas – i cambiar FloatMath – a Math
En la clase Waston tuve el error – mFragments.isadded Por lo tanto, reemplazar el código de seguimiento en lugar de comprobar
MFragments.isadded! = Null
a
MFragments.getActiveFragments (mCreatedMenus)
Siempre que sea necesario
Tuve que resolver estos problemas.
- Mantener la posición de desplazamiento del contenido de WebView en el cambio de orientación
- Cargar un recurso a un mapa de bits mutable