Skip to content

Commit 200488e

Browse files
gabrieldonadelfacebook-github-bot
authored andcommitted
build: Bump AGP to 7.1.1 and fix bundle inclusion in release mode (#33057)
Summary: Upgrade Android Gradle to 7.1.0 on template and fix a bug where the bundle was not getting included when building the app in release mode Closes #33002 Closes #33018 Closes #33046 Potentially fixes #33029 ## Changelog [Android] [Changed] - Bump AGP to 7.1.0 and fix bundle inclusion in release mode Pull Request resolved: #33057 Test Plan: 1. Run `./scripts/test-manual-e2e.sh` 2. Select `A new RN app using the template` and `Android` 3. Test app on the emulator 4. Open Android studio build the app using release variant 4. Check the release apk using Android studio "Analyze APK" tool and ensure the bundle is included ![image](https://user-images.githubusercontent.com/11707729/152700410-3bcb80b0-35b6-4bdc-bf57-98a42a29e5a6.png) Reviewed By: ShikaSD Differential Revision: D34076884 Pulled By: cortinico fbshipit-source-id: da4392af37e08e22dbcafba38476fd712141474a
1 parent 235f168 commit 200488e

File tree

6 files changed

+28
-15
lines changed

6 files changed

+28
-15
lines changed

ReactAndroid/build.gradle

+5
Original file line numberDiff line numberDiff line change
@@ -279,6 +279,7 @@ task androidSourcesJar(type: Jar) {
279279
}
280280

281281
android {
282+
buildToolsVersion = "31.0.0"
282283
compileSdkVersion 31
283284

284285
// Used to override the NDK path & version on internal CI
@@ -418,6 +419,10 @@ afterEvaluate {
418419

419420
// Needed as some of the native sources needs to be downloaded
420421
// before configureNdkBuildDebug could be executed.
422+
reactNativeArchitectures().each { architecture ->
423+
tasks.named("configureNdkBuildDebug[${architecture}]") { dependsOn(preBuild) }
424+
tasks.named("configureNdkBuildRelease[${architecture}]") { dependsOn(preBuild) }
425+
}
421426
configureNdkBuildDebug.dependsOn(preBuild)
422427
configureNdkBuildRelease.dependsOn(preBuild)
423428

build.gradle.kts

+1-1
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ buildscript {
1212
}
1313
dependencies {
1414
val kotlin_version: String by project
15-
classpath("com.android.tools.build:gradle:7.0.4")
15+
classpath("com.android.tools.build:gradle:7.1.1")
1616
classpath("de.undercouch:gradle-download-task:5.0.1")
1717
classpath("org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version")
1818
// NOTE: Do not place your application dependencies here; they belong

packages/react-native-gradle-plugin/src/main/kotlin/com/facebook/react/TaskConfiguration.kt

+2
Original file line numberDiff line numberDiff line change
@@ -194,6 +194,8 @@ internal fun Project.configureReactTasks(variant: BaseVariant, config: ReactExte
194194
it.into(jsBundleDirConfigValue.get())
195195
} else {
196196
it.into(mergeAssetsTask.map { mergeFoldersTask -> mergeFoldersTask.outputDir.get() })
197+
// Workaround for Android Gradle Plugin 7.1 asset directory
198+
it.into("$buildDir/intermediates/assets/${variant.name}/merge${targetName}Assets")
197199
}
198200

199201
it.dependsOn(mergeAssetsTask)

packages/rn-tester/android/app/build.gradle

+11
Original file line numberDiff line numberDiff line change
@@ -143,6 +143,7 @@ def reactNativeArchitectures() {
143143
}
144144

145145
android {
146+
buildToolsVersion = "31.0.0"
146147
compileSdkVersion 31
147148

148149
// Used to override the NDK path & version on internal CI
@@ -298,6 +299,16 @@ if (enableCodegen) {
298299
}
299300

300301
afterEvaluate {
302+
reactNativeArchitectures().each { architecture ->
303+
tasks.named("configureNdkBuildDebug[${architecture}]") {
304+
dependsOn("preHermesDebugBuild")
305+
dependsOn("preJscDebugBuild")
306+
}
307+
tasks.named("configureNdkBuildRelease[${architecture}]") {
308+
dependsOn("preHermesReleaseBuild")
309+
dependsOn("preJscReleaseBuild")
310+
}
311+
}
301312
configureNdkBuildRelease.dependsOn(packageReactReleaseNdkLibs)
302313
preHermesReleaseBuild.dependsOn(packageReactReleaseNdkLibs)
303314
preJscReleaseBuild.dependsOn(packageReactReleaseNdkLibs)

react.gradle

+8-13
Original file line numberDiff line numberDiff line change
@@ -318,29 +318,24 @@ afterEvaluate {
318318
group = "react"
319319
description = "copy bundled JS into ${targetName}."
320320

321+
from(jsBundleDir)
321322
if (config."jsBundleDir${targetName}") {
322-
from(jsBundleDir)
323323
into(file(config."jsBundleDir${targetName}"))
324324
} else {
325325
into ("$buildDir/intermediates")
326326
if (isAndroidLibrary) {
327-
into ("library_assets/${variant.name}/out") {
328-
from(jsBundleDir)
329-
}
327+
into ("library_assets/${variant.name}/out")
330328
} else {
331-
into ("assets/${targetPath}") {
332-
from(jsBundleDir)
333-
}
329+
into ("assets/${targetPath}")
334330

335331
// Workaround for Android Gradle Plugin 3.2+ new asset directory
336-
into ("merged_assets/${variant.name}/merge${targetName}Assets/out") {
337-
from(jsBundleDir)
338-
}
332+
into ("merged_assets/${variant.name}/merge${targetName}Assets/out")
339333

340334
// Workaround for Android Gradle Plugin 3.4+ new asset directory
341-
into ("merged_assets/${variant.name}/out") {
342-
from(jsBundleDir)
343-
}
335+
into ("merged_assets/${variant.name}/out")
336+
337+
// Workaround for Android Gradle Plugin 7.1 asset directory
338+
into("$buildDir/intermediates/assets/${variant.name}/merge${targetName}Assets")
344339
}
345340
}
346341

template/android/build.gradle

+1-1
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ buildscript {
1313
mavenCentral()
1414
}
1515
dependencies {
16-
classpath("com.android.tools.build:gradle:7.0.4")
16+
classpath("com.android.tools.build:gradle:7.1.1")
1717
classpath("com.facebook.react:react-native-gradle-plugin")
1818
classpath("de.undercouch:gradle-download-task:5.0.1")
1919
// NOTE: Do not place your application dependencies here; they belong

0 commit comments

Comments
 (0)