There are some issues in the react-native itself.
the solution to this issue - [https://github.com/facebook/react-native/issues/35210][1]
For react-native ( >= 0.63)
In **android -> build.gradle** add this exclusive Content inside the allprojects.repositories
allprojects {
repositories {
exclusiveContent {
// We get React Native's Android binaries exclusively through npm,
// from a local Maven repo inside node_modules/react-native/.
// (The use of exclusiveContent prevents looking elsewhere like Maven Central
// and potentially getting a wrong version.)
filter {
includeGroup "com.facebook.react"
}
forRepository {
maven {
url "$rootDir/../node_modules/react-native/android"
}
}
}
// ...
}
}
For older react-native (< 0.63)
Add this in the all projects area of your **android -> build.gradle** file.
def REACT_NATIVE_VERSION = new File(['node', '--print',"JSON.parse(require('fs').readFileSync(require.resolve('react-native/package.json'), 'utf-8')).version"].execute(null, rootDir).text. Trim())
allprojects {
configurations.all {
resolutionStrategy {
// Remove this override in 0.65+, as a proper fix is included in react-
native itself.
force "com.facebook.react:react-native:" + REACT_NATIVE_VERSION
}
}
[1]: https://github.com/facebook/react-native/issues/35210
To fix this issue, you need to add the following in your `android/build.gradle` file.
allprojects {
repositories {
exclusiveContent {
// We get React Native's Android binaries exclusively through npm,
// from a local Maven repo inside node_modules/react-native/.
// (The use of exclusiveContent prevents looking elsewhere like Maven Central
// and potentially getting a wrong version.)
filter {
includeGroup "com.facebook.react"
}
forRepository {
maven {
url "$rootDir/../node_modules/react-native/android"
}
}
}
// ...
}
}
What this fix will do is apply an `exclusiveContent` resolution rule that will force the resolution of React Native Android library, to use the one inside `node_modules`.
Once you update your app to React Native `v0.71.0`, this fix won't be needed anymore.
Reason - The reason is very briefly explained here - [Fix and updates on Android build failures][1]
[1]: https://github.com/facebook/react-native/issues/35210
UPDATE - This also fixes issue with kotlin due to the same reason
Incompatible classes were found in dependencies.
Module was compiled with an incompatible version of Kotlin. The binary version of its metadata is 1.6.0, expected version is 1.4.0.
UPDATE - React Native team has pushed hotfix releases for all the main versions of react-native as below:
🛳 0.70.5: https://github.com/facebook/react-native/releases/tag/v0.70.5
🛳️ 0.69.7: https://github.com/facebook/react-native/releases/tag/v0.69.7
🛳 0.68.5: https://github.com/facebook/react-native/releases/tag/v0.68.5
🛳️ 0.67.5: https://github.com/facebook/react-native/releases/tag/v0.67.5
🛳️ 0.66.5: https://github.com/facebook/react-native/releases/tag/v0.66.5
🛳️ 0.65.3: https://github.com/facebook/react-native/releases/tag/v0.65.3
🛳️ 0.64.4: https://github.com/facebook/react-native/releases/tag/v0.64.4
🛳️ 0.63.5: https://github.com/facebook/react-native/releases/tag/v0.63.5
By updating to these patch versions in your `package.json`, your Android build should start working again.