8.6 Released with 🥽 visionOS support and more!
Check it out

Adding native code to an application ​

There are different ways to add native code to an Android application. You can add .jar and .aar files, or Java/Kotlin source files in App_Resources/Android/libs and App_Resources/Android/src respectively.

bash
App_Resources/
├─ Android/
│  ├─ app.gradle
│  ├─ libs/
│  │  ├─ HelloAndroidLib.aar  # Android Archive
│  │  └─ HelloJavaLib.jar     # Java Archive
│  └─ src/
│     └─ main/
│       ├─ java/
│       │  ├─ com/example/HelloKotlin.kt  # Kotlin source code
│       │  └─ com/example/HelloJava.java  # Java source code
│       └─ res/
└─ ... more

Adding Java code ​

Define the java file in App_Resources/Android/src/main/java.

java
// HelloJava.java
package com.example;

public class HelloJava {
  public String getString() {
    return "Hello from Java!";
  }
}

Given the example above, your JavaScript or TypeScript code can reference the Java code by using the full class name:

typescript
const helloJava = new com.example.HelloJava()
console.log('Java says: ' + helloJava.getString())
// prints: Java says: Hello from Java!

Note

When using TypeScript, you may need to generate typings, or alternatively declare the top level package name as any.

typescript
declare const com: any

Adding Kotlin code ​

Configuring Kotlin ​

Enable kotlin ​

When using Kotlin, it must be enabled first.

Set useKotlin=true in App_Resources/Android/gradle.properties (create the file if it doesn't exist).

ini
useKotlin=true

Configure Kotlin version ​

Configure the version of Kotlin to use in the application in App_Resources/Android/before-plugins.gradle (create the file if it doesn't exist).

groovy
project.ext {
  kotlinVersion = "1.9.10"
}

Using kotlin ​

Define the kotlin file in App_Resources/Android/src/main/java.

kotlin
// HelloKotlin.kt
package com.example

class HelloKotlin {
  val hello = "Hello from Kotlin!"
}

Given the example above, your JavaScript or TypeScript code can reference the Kotlin code by using the full class name:

typescript
const helloKotlin = new com.example.HelloKotlin()
console.log('Kotlin says: ' + helloKotlin.hello)
// prints: Kotlin says: Hello from Kotlin!

Note

When using TypeScript, you may need to generate typings, or alternatively declare the top level package name as any.

typescript
declare const com: any