Skip to content

Commit 7c8e266

Browse files
dulmandakhfacebook-github-bot
authored andcommitted
lazy configure ReactAndroid gradle tasks (#26314)
Summary: ReactAndroid Gradle was failing mysteriously with error below, because it was trying to read values from **android** when it wasn't configured completely. ```java extensionSupplier.get()!!.compileSdkVersion must not be null ``` or ```java compileSdkVersion is not specified. ``` It is happening because **buildReactNdkLib** task was created and configured eagerly. So this PR changes some tasks to be configured lazily, and reads values from **android** when ready. Also remove ANDROID_NDK variable check because android gradle plugin doing it automatically. ## Changelog [Android] [Changed] - lazily configure ReactAndroid gradle tasks Pull Request resolved: #26314 Test Plan: ./gradlew ReactAndroid:tasks run without errors, while master throws exception. Differential Revision: D17177945 Pulled By: cpojer fbshipit-source-id: c7a165092157d2059f946da70b801d1a475d4b8c
1 parent 97607ff commit 7c8e266

File tree

1 file changed

+11
-8
lines changed

1 file changed

+11
-8
lines changed

ReactAndroid/build.gradle

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -210,14 +210,14 @@ def findNdkBuildFullPath() {
210210
def ndkDir = property("ndk.path")
211211
return new File(ndkDir, getNdkBuildName()).getAbsolutePath()
212212
}
213+
213214
if (System.getenv("ANDROID_NDK") != null) {
214215
def ndkDir = System.getenv("ANDROID_NDK")
215216
return new File(ndkDir, getNdkBuildName()).getAbsolutePath()
216217
}
217-
def ndkDir = android.hasProperty("plugin") ? android.plugin.ndkFolder :
218-
plugins.getPlugin("com.android.library").hasProperty("sdkHandler") ?
219-
plugins.getPlugin("com.android.library").sdkHandler.getNdkFolder() :
220-
android.ndkDirectory ? android.ndkDirectory.absolutePath : null
218+
219+
def ndkDir = android.ndkDirectory ? android.ndkDirectory.absolutePath : null
220+
221221
if (ndkDir) {
222222
return new File(ndkDir, getNdkBuildName()).getAbsolutePath()
223223
}
@@ -253,7 +253,8 @@ def getNdkBuildFullPath() {
253253
return ndkBuildFullPath
254254
}
255255

256-
task buildReactNdkLib(dependsOn: [prepareJSC, prepareHermes, prepareBoost, prepareDoubleConversion, prepareFolly, prepareGlog], type: Exec) {
256+
def buildReactNdkLib = tasks.register("buildReactNdkLib", Exec) {
257+
dependsOn(prepareJSC, prepareHermes, prepareBoost, prepareDoubleConversion, prepareFolly, prepareGlog)
257258
inputs.dir("$projectDir/../ReactCommon")
258259
inputs.dir("src/main/jni")
259260
outputs.dir("$buildDir/react-ndk/all")
@@ -271,7 +272,7 @@ task buildReactNdkLib(dependsOn: [prepareJSC, prepareHermes, prepareBoost, prepa
271272
)
272273
}
273274

274-
task cleanReactNdkLib(type: Exec) {
275+
def cleanReactNdkLib = tasks.register("cleanReactNdkLib", Exec) {
275276
ignoreExitValue(true)
276277
errorOutput(new ByteArrayOutputStream())
277278
commandLine(getNdkBuildFullPath(),
@@ -286,14 +287,16 @@ task cleanReactNdkLib(type: Exec) {
286287
}
287288
}
288289

289-
task packageReactNdkLibs(dependsOn: buildReactNdkLib, type: Copy) {
290+
def packageReactNdkLibs = tasks.register("packageReactNdkLibs", Copy) {
291+
dependsOn(buildReactNdkLib)
290292
from("$buildDir/react-ndk/all")
291293
into("$buildDir/react-ndk/exported")
292294
exclude("**/libjsc.so")
293295
exclude("**/libhermes.so")
294296
}
295297

296-
task packageReactNdkLibsForBuck(dependsOn: packageReactNdkLibs, type: Copy) {
298+
def packageReactNdkLibsForBuck = tasks.register("packageReactNdkLibsForBuck", Copy) {
299+
dependsOn(packageReactNdkLibs)
297300
from("$buildDir/react-ndk/exported")
298301
into("src/main/jni/prebuilt/lib")
299302
}

0 commit comments

Comments
 (0)