From fd3ac37428b0d2eed5c700cc2d9d6974723f65a8 Mon Sep 17 00:00:00 2001 From: Nick Gerleman Date: Sat, 7 Mar 2026 05:06:37 -0800 Subject: [PATCH] Update Yoga Android build to Gradle 9, AGP 8.12, SDK 36 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Summary: Aligns Yoga’s Android bindings with React Native’s current toolchain to ensure compatibility and reduce maintenance overhead. Removes deprecated Gradle APIs and build-scan config, and updates targets (`minSdk`, `Java/Kotlin`) to match modern Android and RN requirements. --- AI generated Summary & Test Plan from DEV99918839 Differential Revision: D95672156 --- build.gradle | 8 ++++---- gradle.properties | 2 +- gradle/wrapper/gradle-wrapper.properties | 2 +- java/AndroidManifest.xml | 6 +----- java/build.gradle.kts | 20 +++++++------------- 5 files changed, 14 insertions(+), 24 deletions(-) diff --git a/build.gradle b/build.gradle index 153c3db54e..93f6441966 100644 --- a/build.gradle +++ b/build.gradle @@ -6,9 +6,9 @@ */ plugins { - id("com.android.library") version "8.7.1" apply false - id("com.android.application") version "8.7.1" apply false - id("io.github.gradle-nexus.publish-plugin") version "1.3.0" + id("com.android.library") version "8.12.0" apply false + id("com.android.application") version "8.12.0" apply false + id("io.github.gradle-nexus.publish-plugin") version "2.0.0" id 'org.jetbrains.kotlin.android' version '2.1.20' apply false } @@ -42,5 +42,5 @@ nexusPublishing { } task clean(type: Delete) { - delete rootProject.buildDir + delete rootProject.layout.buildDirectory } diff --git a/gradle.properties b/gradle.properties index cb6b2b4a38..bf65ce49f8 100644 --- a/gradle.properties +++ b/gradle.properties @@ -9,6 +9,6 @@ android.useAndroidX=true -org.gradle.jvmargs=-Xmx1536M +org.gradle.jvmargs=-Xmx4g -XX:MaxMetaspaceSize=1g -Dfile.encoding=UTF-8 VERSION_NAME=0.0.0 diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 37f853b1c8..37f78a6af8 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-8.13-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-9.3.1-bin.zip networkTimeout=10000 validateDistributionUrl=true zipStoreBase=GRADLE_USER_HOME diff --git a/java/AndroidManifest.xml b/java/AndroidManifest.xml index 108667b3a1..eb1db6cd12 100644 --- a/java/AndroidManifest.xml +++ b/java/AndroidManifest.xml @@ -7,11 +7,7 @@ LICENSE file in the root directory of this source tree. --> - + diff --git a/java/build.gradle.kts b/java/build.gradle.kts index 21dec6bc85..0cde070849 100644 --- a/java/build.gradle.kts +++ b/java/build.gradle.kts @@ -14,16 +14,10 @@ plugins { group = "com.facebook.yoga" -val compileSdkVersionProperty: Int by rootProject.extra -val minSdkVersionProperty: Int by rootProject.extra -val targetSdkVersionProperty: Int by rootProject.extra -val buildToolsVersionProperty: String by rootProject.extra -val ndkVersionProperty: String by rootProject.extra - android { namespace = "com.facebook.yoga" - compileSdk = 35 - buildToolsVersion = "35.0.0" + compileSdk = 36 + buildToolsVersion = "36.0.0" ndkVersion = "27.1.12297006" defaultConfig { @@ -37,8 +31,8 @@ android { externalNativeBuild { cmake { path("CMakeLists.txt") } } compileOptions { - targetCompatibility(JavaVersion.VERSION_1_8) - sourceCompatibility(JavaVersion.VERSION_1_8) + targetCompatibility(JavaVersion.VERSION_17) + sourceCompatibility(JavaVersion.VERSION_17) } sourceSets { @@ -49,7 +43,7 @@ android { } } - kotlinOptions { jvmTarget = "1.8" } + kotlinOptions { jvmTarget = "17" } publishing { multipleVariants { @@ -62,9 +56,9 @@ android { dependencies { implementation("com.google.code.findbugs:jsr305:3.0.2") - implementation("com.facebook.soloader:soloader:0.10.5") + implementation("com.facebook.soloader:soloader:0.12.1") implementation("androidx.core:core-ktx:1.16.0") - testImplementation("junit:junit:4.12") + testImplementation("junit:junit:4.13.2") } version =