This error occurs when you call a method with an incorrect parameter type.
Make sure your method signature matches exactly what you are passing. For a string array:
jmethodID mid = env->GetMethodID(cls, methodName, "([Ljava/lang/String;)V");
If you are creating it yourself, it would look something like this:
jclass stringCls = env->FindClass("java/lang/String");
jobjectArray mStringArray = env->NewObjectArray( mSize, stringCls, NULL);
In your specific case, you are most likely not seeing the crash on Android 2.3 because you are calling AsyncTask.execute() which wasn't available until API 11 (Android 3.0) and your jmethodID is null. (It's a good idea to always check jclass and jmethodID for null after getting them)
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…