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

13

我尝试将我的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个回答

27

当我从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") }/android/build.gradleallProjects.repositories中。

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接