?????????JNI?й????????????? Android??????????????????????????????????????:

????JNIEXPORT jobjectArray JNICALL

????Java_Android123_CwjTest2(JNIEnv *env?? jclass clazz)

????{

????jobjectArray result; //???巵?????

????jclass intArrayClazz = (*env)->FindClass(env?? "[I"); //????????????

????if (intArrayClazz == NULL)

????{

????return NULL;

????}

????result = (*env)->NewObjectArray(env?? size?? intArrayClazz?? NULL); //????????μ????????

????if (result == NULL)

????{

????return NULL;

????}

????for (int i = 0; i < 10 ; i++) //???10??

????{

????jint szBuffer[256];

????int j;

????jintArray newIntArray = (*env)->NewIntArray(env?? 10); //????10??????????

????if (newIntArray == NULL)

????{

????return NULL;

????}

????for (j = 0; j < 10 ; j++) //10??

????{

????szBuffer[j] = i + j;

????}

????(*env)->SetIntArrayRegion(env?? newIntArray?? 0?? 10?? szBuffer); //???ó????10??

????(*env)->SetObjectArrayElement(env?? result?? i?? newIntArray);

????(*env)->DeleteLocalRef(env?? newIntArray);

????}

????return result;

????}

????3. JNI???й????????

????JNI??????????try...catch?????????????????????

????????1: ???ThrowNew??????IOException??????FileNotFound

????(*env)->ThrowNew(env??(*env)->FindClass("java/io/IOException")??"CWJLog Error?? IOException");

????????2: ???Throw?????????

????jclass clazz = (*env)->FindClass(env?? "java/io/IOException");

????jmethodID methodId = (*env)->GetMethodID(env?? clazz?? ""?? "()V");

????jthrowable throwable = (*env)->NewObject(env?? clazz?? methodId);

????(*env)->Throw(env?? throwable);