androidBuildGradleTemplate function

String androidBuildGradleTemplate(
  1. String org,
  2. String pluginName
)

Generates android/build.gradle using the modern plugins {} DSL.

Uses plugins {} at the very top as required by Gradle 7+ — no legacy buildscript {} or apply plugin blocks which break AGP 8/9+.

Implementation

String androidBuildGradleTemplate(String org, String pluginName) => '''
plugins {
    id "com.android.library"
    id "org.jetbrains.kotlin.android"
}

group = "$org.$pluginName"
version = "1.0"

android {
    namespace = "$org.$pluginName"
    compileSdk = 36
    ndkVersion = "27.0.12077973"

    externalNativeBuild {
        cmake { path = "../src/CMakeLists.txt" }
    }

    compileOptions {
        sourceCompatibility = JavaVersion.VERSION_17
        targetCompatibility = JavaVersion.VERSION_17
    }

    kotlinOptions { jvmTarget = "17" }

    defaultConfig { minSdk = 24 }

    sourceSets {
        main {
            // Do NOT add to java.srcDirs — in AGP 8.x that routes .kt files
            // through the Java compiler and causes "Unresolved reference" errors.
            kotlin.srcDirs += "\${project.projectDir}/../lib/src/generated/kotlin"
        }
    }
}

dependencies {
    implementation "org.jetbrains.kotlinx:kotlinx-coroutines-android:1.7.3"
    implementation "org.jetbrains.kotlinx:kotlinx-coroutines-core:1.7.3"
}
''';