diff --git a/android/app/build.gradle b/android/app/build.gradle index da9e09f05..683d98da3 100644 --- a/android/app/build.gradle +++ b/android/app/build.gradle @@ -24,15 +24,18 @@ repositories { google() mavenCentral() - // TODO: Remove these when they've been published to Maven Central. - // See https://github.com/microsoft/react-native-test-app/issues/305 - // noinspection JcenterRepositoryObsolete - jcenter() { - content { - includeGroup("com.facebook.fbjni") - includeGroup("com.facebook.flipper") - includeGroup("com.facebook.fresco") - includeGroup("com.facebook.yoga") + // TODO: Remove this block when we drop support for 0.64. + if (getReactNativeVersionNumber(rootDir) < 6500) { + // Artifacts for 0.65+ are published to Maven Central. If we're on an + // older version, we still need to use JCenter. + // noinspection JcenterRepositoryObsolete + jcenter() { + content { + includeGroup("com.facebook.fbjni") + includeGroup("com.facebook.flipper") + includeGroup("com.facebook.fresco") + includeGroup("com.facebook.yoga") + } } } diff --git a/android/test-app-util.gradle b/android/test-app-util.gradle index 7cb7458d9..0ec24cc47 100644 --- a/android/test-app-util.gradle +++ b/android/test-app-util.gradle @@ -137,3 +137,11 @@ ext.getFlipperVersion = { baseDir -> // Use the recommended Flipper version return recommendedFlipperVersion } + +ext.getReactNativeVersionNumber = { baseDir -> + def reactNativePath = findNodeModulesPath(baseDir, "react-native") + def packageJson = file("${reactNativePath}/package.json") + def manifest = new JsonSlurper().parseText(packageJson.text) + def (major, minor, patch) = manifest["version"].tokenize(".") + return (major as int) * 10000 + (minor as int) * 100 + (patch as int) +}