android应用程序的任务':app:processDebugManifest'的React-native执行失败

Posted

技术标签:

【中文标题】android应用程序的任务\':app:processDebugManifest\'的React-native执行失败【英文标题】:React-native Execution failed for task ':app:processDebugManifest' for android appandroid应用程序的任务':app:processDebugManifest'的React-native执行失败 【发布时间】:2022-01-12 02:18:32 【问题描述】:

我正在尝试在 theM1 Mac air 上运行 react-native android 应用程序。 我正在运行 react-native 0.63.4。 适用于苹果芯片的 Android Studio 2020.3.1。 ios 应用程序运行良好,但我的 android 应用程序行为异常。 首先,每当我尝试使用“npx react-native run-android”通过 cli 运行应用程序时,我都会收到此错误

     > Configure project :react-native-reanimated
    
    > Task :app:processDebugManifest FAILED
    
    Deprecated Gradle features were used in this build, making it incompatible with Gradle 7.0.
    Use '--warning-mode all' to show the individual deprecation warnings.
    See https://docs.gradle.org/6.3/userguide/command_line_interface.html#sec:command_line_warnings
    127 actionable tasks: 127 executed
    Warning: Mapping new ns http://schemas.android.com/repository/android/common/02 to old ns http://schemas.android.com/repository/android/common/01
    Warning: Mapping new ns http://schemas.android.com/repository/android/generic/02 to old ns http://schemas.android.com/repository/android/generic/01
    Warning: Mapping new ns http://schemas.android.com/sdk/android/repo/addon2/02 to old ns http://schemas.android.com/sdk/android/repo/addon2/01
    Warning: Mapping new ns http://schemas.android.com/sdk/android/repo/repository2/02 to old ns http://schemas.android.com/sdk/android/repo/repository2/01
    Warning: Mapping new ns http://schemas.android.com/sdk/android/repo/sys-img2/02 to old ns http://schemas.android.com/sdk/android/repo/sys-img2/01
    Warning: Mapping new ns http://schemas.android.com/repository/android/common/02 to old ns http://schemas.android.com/repository/android/common/01
    Warning: Mapping new ns http://schemas.android.com/repository/android/generic/02 to old ns http://schemas.android.com/repository/android/generic/01
    Warning: Mapping new ns http://schemas.android.com/sdk/android/repo/addon2/02 to old ns http://schemas.android.com/sdk/android/repo/addon2/01
    Warning: Mapping new ns http://schemas.android.com/sdk/android/repo/repository2/02 to old ns http://schemas.android.com/sdk/android/repo/repository2/01
    Warning: Mapping new ns http://schemas.android.com/sdk/android/repo/sys-img2/02 to old ns http://schemas.android.com/sdk/android/repo/sys-img2/01
FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':app:processDebugManifest'.
> Unable to make field private final java.lang.String java.io.File.path accessible: module java.base does not "opens java.io" to unnamed module @70673583

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.

* Get more help at https://help.gradle.org

BUILD FAILED in 8s

error Failed to install the app. Make sure you have the Android development environment set up: https://reactnative.dev/docs/environment-setup. Run CLI with --verbose flag for more details.
Error: Command failed: ./gradlew app:installDebug -PreactNativeDevServerPort=8081
Warning: Mapping new ns http://schemas.android.com/repository/android/common/02 to old ns http://schemas.android.com/repository/android/common/01

这发生在它配置 react-native firebase 并且无法配置 react-native-reanimated 之后。

这就是它现在变得有趣的地方。最初在 android studio 中打开项目给了我一个错误,它无法找到节点。我通过在终端中打开 android studio 来解决这个问题。 就构建应用程序而言,在 android studio 中一切都很好。该应用程序已安装,但它无法或什至没有尝试连接到 Metro 捆绑程序(我在尝试运行该应用程序之前就开始了它)。我尝试在应用程序中重新加载,它立即解决了一个错误,指出它无法连接到开发服务器。在捆绑器中重新加载本身会在捆绑器中解决,警告我没有连接任何设备。

任何想法可能导致所有这些错误?

【问题讨论】:

【参考方案1】:

已解决 此问题是由于 android studio 指向尚不支持的 java 16。 以下错误的证据:

Unable to make field private final java.lang.String java.io.File.path accessible: module java.base does not "opens java.io" to unnamed module @70673583

解决方案:删除 java 16,使用 java 8 或 11。以下步骤适用于 Mac OS 用户

cd /Library/Java/JavaVirtualMachines

然后你想列出这个文件夹中的所有 jdk 版本使用

ls

现在,如果您看到任何格式为 jdk-16.x.x.jdk 的文件,请按如下方式将其删除

sudo rm -rf jdk-16.0.2.jdk

就我而言,我有 jdk-16.0.2.jdk 以及 jdk-11 和 jdk-8

执行此操作后,请确保您通过运行安装了适当版本的 java

java --version

我相信任何低于 16 的版本都足够了。

在这个堆栈溢出问题上找到了解决方案:How do I uninstall the Java JDK in macOS?

现在像往常一样在你的项目目录中运行你的项目:

npx react-native run-android

【讨论】:

以上是关于android应用程序的任务':app:processDebugManifest'的React-native执行失败的主要内容,如果未能解决你的问题,请参考以下文章

任务 ':app:dexDebug' Android Studio 执行失败

任务:app:bundleReleaseJsAndAssets 失败 - React Native - Android

使用新 Android Studio 项目的任务“:app:dexDebug”的 Gradle 执行失败

Android-Cordova 10.0.1 任务:app:processDebugGoogleServices 失败

反应本机android任务:app:transformClassesWithMultidexlistForRelease FAILED

签署 android 捆绑包时出错:任务“:app:signReleaseBundle”执行失败