-
Notifications
You must be signed in to change notification settings - Fork 935
Description
Environment
System:
OS: macOS 10.14.5
CPU: (4) x64 Intel(R) Core(TM) i5-5257U CPU @ 2.70GHz
Memory: 26.03 MB / 8.00 GB
Shell: 3.2.57 - /bin/bash
Binaries:
Node: 10.15.3 - ~/.nvm/versions/node/v10.15.3/bin/node
Yarn: 1.17.3 - /usr/local/bin/yarn
npm: 6.4.1 - ~/.nvm/versions/node/v10.15.3/bin/npm
Watchman: 4.9.0 - /usr/local/bin/watchman
SDKs:
iOS SDK:
Platforms: iOS 12.4, macOS 10.14, tvOS 12.4, watchOS 5.3
Android SDK:
API Levels: 28
Build Tools: 28.0.3
System Images: android-21 | Google APIs Intel x86 Atom_64, android-28 | Google APIs Intel x86 Atom_64
IDEs:
Android Studio: 3.4 AI-183.6156.11.34.5692245
Xcode: 10.3/10G8 - /usr/bin/xcodebuild
npmPackages:
react: 16.8.6 => 16.8.6
react-native: 0.60.3 => 0.60.3
Description
After the upgrade to RN 0.60.3 I can't build my Android App anymore. The build fails with the message: Unresolved reference: PackageList.
Reproducible Demo
Just migrate to RN 0.60.3 and the new autolink system.
The PackageList.java file is created from native_modules.gradle (https://github.com/react-native-community/cli/blob/master/packages/platform-android/native_modules.gradle)
It seem that the added (gradle) android.sourceSets.main.java.srcDirs is wrong.
def generatedSrcDir = new File(buildDir, "generated/rncli/src/main/java/com/facebook/react")
task generatePackageList {
doLast {
autoModules.generatePackagesFile(generatedCodeDir, generatedFileName, generatedFileContentsTemplate)
}
}
preBuild.dependsOn generatePackageList
android {
sourceSets {
main {
java {
srcDirs += generatedSrcDir
}
}
}
}The generatedSrcDir contains the (Java) Package. Maybe the issue.
Everything works fine, if I change the script to:
def generatedSrcDir = "generated/rncli/src/main/java"
def generatedCodeDir = new File(buildDir, "$generatedSrcDir/com/facebook/react")
task generatePackageList {
doLast {
autoModules.generatePackagesFile(generatedCodeDir, generatedFileName, generatedFileContentsTemplate)
}
}
preBuild.dependsOn generatePackageList
android {
sourceSets {
main {
java {
srcDirs += "build/$generatedSrcDir"
}
}
}
}