Kotlin-JNI Help

Kotlin-JNI

Kotlin-JNI is a powerful Kotlin Multiplatform library designed to simplify and unify JNI (Java Native Interface) development across Android, Desktop (Linux, macOS, Windows), and Kotlin/Native.

It provides a common JNI interface for all supported native targets and includes a KSP module to automatically generate JNI-compatible function stubs, eliminating boilerplate and bridging the gap between your native Kotlin code and the Java world.

Acknowledgement

I want to express great gratitude to the original creator @DatL4g for the idea and execution. This project indeed makes JNI on Kotlin painless and effortless.

However, since the original repository no longer has a permissive license, this repository had to be created, based on the older, Apache-licensed version.

✨ Features

1. Unified JNI API

Write common JNI code for androidNative, linux, macos, and mingwX64 targets.

2. Type conversion utilities

A rich set of extension functions to effortlessly convert between JNI types and standard Kotlin types (e.g., jstring.toKString(), IntArray.toJIntArray()).

3. KSP Code Generation

Automatically generate JNI-compatible C-style function stubs from your idiomatic Kotlin functions using the @JNIConnect annotation.

4. Bi-directional integration

You can use standard Kotlin types for making calls between JVM and Native.

  • Call your native Kotlin functions directly from JVM

  • Call your JVM functions directly from Native

Last modified: 03 February 2026