Task :react-native-async-storage_async-storage:generateDebugRFile FAILED
我在运行我的React Native应用程序时遇到了问题,该应用程序昨天还运行良好。因此,我运行了这个命令:
npx react-native run-android -- --warning-mode=all
其中提供的信息以......开始:
> Task :react-native-async-storage_async-storage:generateDebugRFile FAILED
Deprecated Gradle features were used in this build, making it incompatible with Gradle 8.0.
FAILURE: Build failed with an exception.
...
* What went wrong:
Execution failed for task ':react-native-async-storage_async-storage:generateDebugRFile'.
> Could not resolve all files for configuration ':react-native-async-storage_async-storage:debugCompileClasspath'.
> Failed to transform react-native-0.71.0-rc.0-debug.aar (com.facebook.react:react-native:0.71.0-rc.0) to match attributes {artifactType=android-symbol-with-package-name, com.android.build.api.attributes.BuildTypeAttr=debug, org.gradle.category=library, org.gradle.dependency.bundling=external, org.gradle.libraryelements=aar, org.gradle.status=release, org.gradle.usage=java-api}.
> Execution failed for JetifyTransform: C:\Users\pangi\.gradle\caches\modules-2\files-2.1\com.facebook.react\react-native\0.71.0-rc.0\7a7f5a0af6ebd8eb94f7e5f7495e9d9684b4f543\react-native-0.71.0-rc.0-debug.aar.
> Java heap space
我的第一个问题是如何解决这个问题?我似乎无法在互联网上找到这个特定问题的解决方案。很明显,它与 "async storage"包有关,我确实更新了它,然而这并没有解决这个问题。
据说使用"--warning-mode=all"的措辞应该提供Gradle的链接来帮助解决这个问题......但我没有看到。我还注意到在输出中提到了'react-native-0.71',但我使用的是更低的版本...不知道这是否与问题有关。希望得到任何建议。
我的第二个问题是更普遍的。为什么在React Native中经常发生这种无意义的、可笑的事情?如前所述,我上次启动时,代码运行良好。我可以不对我的代码做任何修改(或最小的修改),突然代码就坏了,不能用了......不是我自己的错,而是与一些npm包或其他原因(例如Gradle)有关,与我没有关系。我从来没有见过,也没有想象过......这样一个不可靠的、"bug满天飞 "的软件会被发布给普通大众。为什么像这样的问题会在React Native中持续发生?这只是无能,还是有更好的答案?由于这些做法在这个特定的平台上给我带来了问题,我总是在处理无尽的沮丧和愤怒。如果有人能解释为什么这个开发 "环境 "充满了这些问题,我将非常感激。
由于React Native版本的发布,Android会出现构建失败的情况0.71.0-rc0
。
在你的android -> build.gradle文件中加入这个修正,如下所示。
buildscript {
// ...
}
allprojects {
repositories {
exclusiveContent {
filter {
includeGroup "com.facebook.react"
}
forRepository {
maven {
url "$rootDir/../node_modules/react-native/android"
}
}
}
// ...
}
}
这个修正所要做的是应用一个exclusiveContent
的解析规则,强制解析React Native Android库,以使用node_modules
里面的解析规则。
如果上述方法不能解决你的问题,那么请尝试这里提到的方法2。React Native Android build failure with different errors without any changes in code for past days due to publish of React Native version 0.71.0-rc.0
我已经两天没有运行build了,直到昨天,11月5日,我运行了npx react-native run-android,然后发现了这个错误。 我花了将近24小时来寻找解决方案,直到我偶然发现了这个问题。
根据@Thanhal的说法,这个修复方法对我来说是有效的。
我调整了我的android/build.gradle。以下是我的gradle文件的全部内容和修正。
// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {
ext {
buildToolsVersion = "30.0.2"
minSdkVersion = 21
compileSdkVersion = 30
targetSdkVersion = 30
ndkVersion = "21.4.7075529"
kotlinVersion = '1.6.0'
}
repositories {
google()
mavenCentral()
}
dependencies {
classpath("com.android.tools.build:gradle:4.2.2")
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
}
allprojects {
repositories {
// ------ Fix starts here
exclusiveContent {
filter {
includeGroup "com.facebook.react"
}
forRepository {
maven {
url "$rootDir/../node_modules/react-native/android"
}
}
}
// --------- Fix ends here
maven {
// All of React Native (JS, Obj-C sources, Android binaries) is installed from npm
url("$rootDir/../node_modules/react-native/android")
}
maven {
// Android JSC is installed from npm
url("$rootDir/../node_modules/jsc-android/dist")
}
mavenCentral {
// We don't want to fetch react-native from Maven Central as there are
// older versions over there.
content {
excludeGroup "com.facebook.react"
}
}
google()
maven { url 'https://www.jitpack.io' }
}
}
我希望这也能帮助到外面的人。
最近我解决了这个问题,更新了React Native的版本。我有这个0.68.1的版本,当我陷入这个错误的时候。你可以很容易地从这里更新你的版本如何从这里更新你的版本。
之后,我通过运行这个命令来清理android的Gradle。
./gradlew clean
然后再回到项目中,运行
npm install
之后,从你的手机上卸载应用程序,并再次运行你的项目。
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
# distributionUrl=https\://services.gradle.org/distributions/gradle-7.3.3-all.zip
distributionUrl=https\://services.gradle.org/distributions/gradle-7.6-all.zip
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
更新distributionUrl的内容