Beispiel #1
0
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;
}