rust_jni/
lib.rs

1use jni::JNIEnv;
2use jni::objects::{JClass, JString};
3use jni::sys::jstring;
4
5#[unsafe(no_mangle)]
6pub extern "C" fn Java_com_example_rustandroid_RustJni_hello<'local>(
7    mut env: JNIEnv<'local>,
8    _class: JClass<'local>,
9    input: JString<'local>,
10) -> jstring {
11    let input_str: String = env
12        .get_string(&input)
13        .expect("Couldn't get java string!")
14        .into();
15    
16    let output = env
17        .new_string(format!("Hello, {}! (from Rust)", input_str))
18        .expect("Couldn't create java string!");
19    
20    output.into_raw()
21}