Weird parse crash android – Intenta invocar el método virtual 'int java.lang.Integer.intValue ()
Así que básicamente he intentado todo, pero sigo recibiendo este accidente. Se bloquea sólo a veces. Aquí está mi código:
if (mCurrentUser != null && mCurrentUser.containsKey(Constants.TABLE_POINTS)) { int points = mCurrentUser.getInt(Constants.TABLE_POINTS) + AppSingleton.sPointsLookupMap.get(pointsKey); mCurrentUser.put(Constants.TABLE_POINTS, points); mCurrentUser.saveInBackground(); }
Stacktrace:
- ParseFacebookUtils Android auth_type: 'reautenticar'
- Boolean java.lang.String.equals (java.lang.Object) 'en un error de referencia de objeto nulo en ParseFacebookUtils.logInWithReadPermissionsBackground
- Mensaje de error de Logcat: intento de destruir la barrera con un conteo no nulo
- ¿Cuál es la mejor manera de obtener distintos contactos en Android?
- Proyecto de Android se queja "Los tornillos de tipo.Task no se puede resolver. Se hace referencia indirectamente a los archivos .class necesarios "
java.lang.NullPointerException: Attempt to invoke virtual method 'int java.lang.Integer.intValue()' on a null object reference at com.titlesource.ts_foodsource.fragments.KitchenFragment$10.done(KitchenFragment.java:654) at com.titlesource.ts_foodsource.fragments.KitchenFragment$10.done(KitchenFragment.java:649) at com.parse.ParseTaskUtils$2$1.run(ParseTaskUtils.java:115) at android.os.Handler.handleCallback(Handler.java:746) at android.os.Handler.dispatchMessage(Handler.java:95) at android.os.Looper.loop(Looper.java:148) at android.app.ActivityThread.main(ActivityThread.java:5443) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:728) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618)
Ahora he encontrado que el intValue () se está utilizando dentro del método getInt () (Dentro de la clase ParseObject):
public int getInt(String key) { Number number = this.getNumber(key); return number == null?0:number.intValue(); }
¿Por qué recibo esta excepción? Lo he intentado todo. Se agregaron comprobaciones nulas y también se verificó que el campo está realmente presente en el objeto mCurrentUser pero todo en vano.
Si votación abajo esta pregunta, por favor deje una razón.
- Causado por: java.lang.IllegalStateException: ParsePlugins ya está inicializado
- FailedBinderTransaction-TransactionTooLargeException
- Tienen menú sólo aparecen en la barra de acción si ParseUser está viendo su propia publicación
- Trabajo en segundo plano utilizando el servidor de análisis y Heroku Scheduler
- Analizar las notificaciones en android no funcionará
- Los datos permanecen en el almacén de datos local después de desenfilar
- Android ParseQueryAdapter paginación con RecyclerView.Adapter
- Parse REST API no devuelve clave del cliente
Usted tiene un Integer
que es nulo, que está intentando unbox (haciendo un simple int
de él).
Dado que el getInt(String key)
de ParseObject
ya comprueba si es nulo, la excepción no está ocurriendo allí.
En su lugar, estará en AppSingleton.sPointsLookupMap.get(pointsKey)
, por lo que está intentando obtener un objeto del mapa que no existe.
Asegúrese de que existe o agregue el correcto manejo de errores a esa parte del código.
Reemplace su código con esto:
if (mCurrentUser != null && mCurrentUser.containsKey(Constants.TABLE_POINTS)) { int points = mCurrentUser.getInt(Constants.TABLE_POINTS); Integer theOtherVariable = AppSingleton.sPointsLookupMap.get(pointsKey); if (theOtherVariable != null) points += theOtherVariable; mCurrentUser.put(Constants.TABLE_POINTS, points); mCurrentUser.saveInBackground(); }
Debe solucionar el problema y hacer el código Excepción de seguridad 🙂
La primera línea (después del if) hizo algo como esto:
- Crea la variable
points
-
mCurrentUser.getInt(Constants.TABLE_POINTS)
el valormCurrentUser.getInt(Constants.TABLE_POINTS)
- Obtener un objeto
Integer
conAppSingleton.sPointsLookupMap.get(pointsKey)
- Agregue el objeto Entero obtenido a
points
, obteniendo su valor con la llamada.intValue()
.
Todo esto sucedió detrás de las escenas en esta línea de código y si el objeto Integer
obtenido era nulo, se lanzó la Exception
.
A veces puede suceder cuando pasa la matriz del tipo Integer
sin palabra clave final
a la clase interna anónima (para OnClickListener en mi caso).
- cambia la ruta para android sdk y avd manager para no apuntar a c: \ users
- Creación de un filtro de tipo de lugar para la API de Autocompletar de lugar para Android