diff --git a/packages/platform-android/src/link/isInstalled.ts b/packages/platform-android/src/link/isInstalled.ts index de53851e1..ea1dc8b3d 100644 --- a/packages/platform-android/src/link/isInstalled.ts +++ b/packages/platform-android/src/link/isInstalled.ts @@ -6,6 +6,7 @@ * */ +import {CLIError} from '@react-native-community/cli-tools'; import fs from 'fs'; import makeBuildPatch from './patches/makeBuildPatch'; @@ -13,6 +14,20 @@ export default function isInstalled( config: {buildGradlePath: string}, name: string, ) { - const buildGradle = fs.readFileSync(config.buildGradlePath, 'utf8'); + let buildGradle: string; + + if (!fs.existsSync(config.buildGradlePath)) { + // Handle default build.gradle path for Gradle Kotlin DSL + if (!fs.existsSync(config.buildGradlePath + '.kts')) { + throw new CLIError( + 'Cannot resolve build.gradle file at: ' + config.buildGradlePath, + ); + } else { + buildGradle = fs.readFileSync(config.buildGradlePath + '.kts', 'utf8'); + } + } else { + buildGradle = fs.readFileSync(config.buildGradlePath, 'utf8'); + } + return makeBuildPatch(name).installPattern.test(buildGradle); }