Task :react-native-async-storage_async-storage:generateDebugRFile FAILED

回答 4 浏览 6085 2022-11-06

我在运行我的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中持续发生?这只是无能,还是有更好的答案?由于这些做法在这个特定的平台上给我带来了问题,我总是在处理无尽的沮丧和愤怒。如果有人能解释为什么这个开发 "环境 "充满了这些问题,我将非常感激。

Pangit 提问于2022-11-06
是的,你的回答似乎是问题的解决之道......再次感谢你的意见。请注意。Pangit 2022-11-07
4 个回答
#1楼 已采纳
得票数 24

由于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

ZFloc Technologies 提问于2022-11-06
ZFloc Technologies 修改于2022-11-08
谢谢你的帖子,这似乎也解决了我的问题,谢谢。Pangit 2022-11-07
#2楼
得票数 10

我已经两天没有运行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' }
    }
}

我希望这也能帮助到外面的人。

Sir'Energieman 提问于2022-11-06
谢谢你的帖子,@Thanhal的回答似乎对我也有用,但是看到你的build.gradle文件与我的文件进行比较,还是很高兴的,谢谢。Pangit 2022-11-07
#3楼
得票数 1

最近我解决了这个问题,更新了React Native的版本。我有这个0.68.1的版本,当我陷入这个错误的时候。你可以很容易地从这里更新你的版本如何从这里更新你的版本

之后,我通过运行这个命令来清理android的Gradle。

./gradlew clean

然后再回到项目中,运行

npm install

之后,从你的手机上卸载应用程序,并再次运行你的项目。

ABDULLAH 提问于2022-11-10
谢谢你的帖子,但我希望停留在我目前的React Native版本,而不更新到其他版本。构建问题是我喜欢留在低版本的原因之一,因为我认为它更稳定。上面的回应(在build.gradle中添加的代码)也确实解决了这个问题。谢谢Pangit 2022-11-11
#4楼
得票数 0
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

enter image description here

更新distributionUrl的内容

Sourabh Gera 提问于2023-01-03
标签