int Java_org_libsdl_app_SDLActivity_nativeInit(JNIEnv* env, jclass cls, jobject obj) { SDL_Android_Init(env, cls); SDL_SetMainReady(); /* Run the application code! */ int status; status = main(argcData+1, argvData); releaseArgv(); /* Do not issue an exit or the whole application will terminate instead of just the SDL thread */ /* exit(status); */ return status; }
/* * Class: com_mit_kerberos_KerberosAppActivity * Method: nativeKdestroy * Signature: (Ljava/lang/String;I)I * * Wrapper around native kdestroy application * */ JNIEXPORT jint JNICALL Java_com_mit_kerberos_KerberosAppActivity_nativeKdestroy (JNIEnv* env, jobject obj, jstring argString, jint argCount) { jboolean isCopy; int ret; int numArgs = (int) argCount; const char *args; char *args_copy; char **argv = (char**)malloc((numArgs+2) * sizeof(char*)); /* Cache a reference to the calling object */ cached_obj = (*env)->NewGlobalRef(env, obj); /* get original argv string from Java */ args = (*env)->GetStringUTFChars(env, argString, &isCopy); /* make a copy of argString to use with strtok */ args_copy = malloc(strlen(args) + 1); strcpy(args_copy, args); /* free argString */ (*env)->ReleaseStringUTFChars(env, argString, args); /* generate argv list */ generateArgv(args_copy, numArgs, argv); /* run kdestroy */ ret = kdestroy_driver(env, obj, numArgs+1, argv); free(args_copy); releaseArgv(numArgs+1, argv); if(ret == 1) return 1; return 0; }