// Code generated by gobind. DO NOT EDIT.

// JNI functions for the Go <=> Java bridge.
//
//   autogenerated by gobind -lang=java try

#include <android/log.h>
#include <stdint.h>
#include "seq.h"
#include "_cgo_export.h"
#include "try.h"


JNIEXPORT void JNICALL
Java_try_1_Try__1init(JNIEnv *env, jclass _unused) {
    jclass clazz;
}

JNIEXPORT jstring JNICALL
Java_try_1_Try_this_1(JNIEnv* env, jclass _clazz) {
    nstring r0 = proxytry__This();
    jstring _r0 = go_seq_to_java_string(env, r0);
    return _r0;
}

