Skip to content

Latest commit

Β 

History

History
116 lines (84 loc) Β· 2.65 KB

File metadata and controls

116 lines (84 loc) Β· 2.65 KB
title Adding Java/Kotlin Code to an application
contributors
Ombuweb
NathanWalker
rigor789
vallemar

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.

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.

// 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:

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

:::tip Note

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

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).

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).

project.ext {
  kotlinVersion = "1.9.10"
}

Using kotlin

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

// 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:

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

:::tip Note

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

declare const com: any

:::