From 034d6782eb82f1bafece26f222edd343eaf8bdc3 Mon Sep 17 00:00:00 2001 From: wobsoriano Date: Fri, 4 Sep 2026 09:41:01 -0700 Subject: [PATCH] fix(android): skip explicit Kotlin plugin when AGP registers the kotlin extension Co-authored-by: Gabriel Donadel Dall'Agnol --- .changeset/agp9-built-in-kotlin.md | 6 ++++++ packages/expo-google-signin/android/build.gradle | 6 +++++- packages/expo-passkeys/android/build.gradle | 6 +++++- 3 files changed, 16 insertions(+), 2 deletions(-) create mode 100644 .changeset/agp9-built-in-kotlin.md diff --git a/.changeset/agp9-built-in-kotlin.md b/.changeset/agp9-built-in-kotlin.md new file mode 100644 index 00000000000..31974ab189f --- /dev/null +++ b/.changeset/agp9-built-in-kotlin.md @@ -0,0 +1,6 @@ +--- +'@clerk/expo-google-signin': patch +'@clerk/expo-passkeys': patch +--- + +Fix Android builds failing on Android Gradle Plugin 9 with `Cannot add extension with name 'kotlin'`. diff --git a/packages/expo-google-signin/android/build.gradle b/packages/expo-google-signin/android/build.gradle index 81ad78c0c7a..68f2dbc7c11 100644 --- a/packages/expo-google-signin/android/build.gradle +++ b/packages/expo-google-signin/android/build.gradle @@ -1,5 +1,9 @@ apply plugin: 'com.android.library' -apply plugin: 'kotlin-android' +// AGP 9+ registers the `kotlin` extension itself, and applying kotlin-android on top of that fails configuration. +if (project.extensions.findByName('kotlin') == null) { + apply plugin: 'kotlin-android' +} + apply plugin: 'maven-publish' group = 'expo.modules.clerk.googlesignin' diff --git a/packages/expo-passkeys/android/build.gradle b/packages/expo-passkeys/android/build.gradle index 079ee040f20..0c1fd23d6aa 100644 --- a/packages/expo-passkeys/android/build.gradle +++ b/packages/expo-passkeys/android/build.gradle @@ -1,5 +1,9 @@ apply plugin: 'com.android.library' -apply plugin: 'kotlin-android' +// AGP 9+ registers the `kotlin` extension itself, and applying kotlin-android on top of that fails configuration. +if (project.extensions.findByName('kotlin') == null) { + apply plugin: 'kotlin-android' +} + apply plugin: 'maven-publish' group = 'expo.modules.clerkexpopasskeys'