升级到 0.60 后 React-Native 找不到符号

IT技术 android reactjs react-native
2021-05-19 15:38:40

我尝试将我的 react-native 应用程序 0.59.4 升级到 0.60.0。

我使用此链接作为升级所有本机文件的参考。但是,当我尝试在 Android 设备上运行我的应用程序时,出现以下错误:

Deprecated Gradle features were used in this build, making it incompatible with Gradle 6.0.
Use '--warning-mode all' to show the individual deprecation warnings.
See https://docs.gradle.org/5.4.1/userguide/command_line_interface.html#sec:command_line_warnings
12 actionable tasks: 4 executed, 8 up-to-date
/home/stephane/Project/youtube-audio-player/android/app/src/main/java/com/youtubeaudioplayer/MainApplication.java:5: error: cannot find symbol
import com.facebook.react.PackageList;
                         ^
  symbol:   class PackageList
  location: package com.facebook.react
/home/stephane/Project/youtube-audio-player/android/app/src/main/java/com/youtubeaudioplayer/MainApplication.java:6: error: cannot find symbol
import com.facebook.react.ReactApplication;
                         ^
  symbol:   class ReactApplication
  location: package com.facebook.react
/home/stephane/Project/youtube-audio-player/android/app/src/main/java/com/youtubeaudioplayer/MainApplication.java:7: error: cannot find symbol
import com.facebook.react.ReactNativeHost;

有人已经成功升级到 0.60 版本了吗?

1个回答

当我从 0.59.10 迁移到 0.60.0 时使用相同的页面时,我实际上错过了一些小东西。

我错过的一件事(我最终可以确定这是我的案例中的问题)是必须将此部分添加到以下内容的底部/android/app/build.gradle

apply from: file("../../node_modules/@react-native-community/cli-platform-android/native_modules.gradle"); applyNativeModulesAppBuildGradle(project)

我只有类似的一行,/android/settings.gradle但错过了那一


这也可能发生还有其他原因。
以下是我在尝试修复我的项目时发现的 GitHub 问题:

  • https://github.com/facebook/react-native/issues/9296:清除IDE缓存并重启;不适用于我的情况,但可能适用于您的情况。
  • https://github.com/facebook/react-native/issues/22033提出了两种解决方案:

    1. 确保maven { url("$rootDir/../node_modules/react-native/android") }在你allProjects.repositories/android/build.gradle

    2. 将您的 react-native 依赖项显式设置为您使用的版本。因此,/android/app/build.gradle在该dependencies部分中,您应该找到一个条目compile "com.facebook.react:react-native:+您可以将其更改为compile "com.facebook.react:react-native:0.60.0. 在某些情况下,gradle 使用旧版本的库,因为它被某些 JavaScript 依赖项引用。此更改应覆盖该更改。