2012-08-22 20 views
14

estoy recibiendo este error JNI ERROR (aplicación de errores): se accede referencia global rancio Cuando ejecuto mi aplicación en v4 sistema operativo Android, pero cuando ejecuto el misma aplicación en Android v2.3 no obtengo este error.error: JNI ERROR (aplicación de errores): se accede rancio referencia global

Este error se produce en el punto en que llamo clase AsyncTask, donde pasar una matriz de cadenas como argumento

Podría alguien ayudarme ??

+2

recuerdo haber leído en [declaración de lanzamientos de Google para desarrolladores] (http://android-developers.blogspot.ie/2011/11/jni-local-reference-changes-in-ics.html) que ICS tendrá una verificación más estricta de posibles errores de múltiples subprocesos, tal vez simplemente te topaste con eso? – skolima

Respuesta

14

Este error se produce cuando llama a un método con un tipo de parámetro incorrecto.

Asegúrate de que la firma de tu método coincida exactamente con lo que estás pasando. Para una matriz de cadenas:

jmethodID mid = env->GetMethodID(cls, methodName, "([Ljava/lang/String;)V"); 

Si va a crear por sí mismo, se vería algo como esto:

jclass stringCls = env->FindClass("java/lang/String"); 
jobjectArray mStringArray = env->NewObjectArray(mSize, stringCls, NULL); 

En su caso específico, es muy probable que no ver el accidente en Android 2.3, ya está llamando AsyncTask.execute() que no estaba disponible hasta API 11 (Android 3.0) y su jmethodID es nulo. (Es una buena idea comprobar siempre jclass y jmethodID para null después de obtenerlos)

+0

Solo como referencia futura, escribí mal 'jlong' con' long', lo que resultó en el mismo error – ZdaR

2

Este error se produce cuando llama a un método con un tipo de parámetro incorrecto.

Además, en este caso es posible que registre el método nativo en el código de Java diferente del código nativo. La diferencia puede ser que declare más o menos parámetros entre el código Java y el código nativo.

1
+0

@Crossle ... soy im nuevo en android y estoy enfrentando el mismo problema http://stackoverflow.com/questions/21423036/sqlite3- Los pls de exception-database-disk-image-is-malformed dicen cómo puedo implementar tu código. Estoy rectificándolo de las últimas 3 semanas :( – Gattsu

Cuestiones relacionadas