升级React-Native至0.60后Android端出现cannot find symbol错误求助
解决React Native 0.59.4升级到0.60.0 Android端的类找不到问题
我当初升级RN到0.60版本时也踩过几乎一模一样的坑,给你分享下我当时的解决步骤:
1. 先搞定PackageList等类找不到的核心问题
RN 0.60开始引入了自动生成的PackageList类,这个类不会一开始就存在,得先让Gradle同步生成它:
- 先确认
android/build.gradle里的依赖版本和RN 0.60匹配:dependencies { classpath 'com.android.tools.build:gradle:3.4.0' // 这个版本是RN 0.60要求的 classpath 'com.facebook.react:react-native-gradle-plugin:0.60.0' } - 然后执行
cd android && ./gradlew clean && ./gradlew build --refresh-dependencies,手动触发Gradle同步和缓存刷新。同步完成后,PackageList会自动生成在build/generated/source/rncli目录下,这时候找不到符号的错误应该就消失了。
另外,ReactApplication和ReactNativeHost找不到的问题,大概率是android/app/build.gradle里的RN依赖没配对,检查下这里:
dependencies { implementation 'com.facebook.react:react-native:0.60.0' // 确保版本和你要升级的一致 }
2. 处理Gradle弃用警告
RN 0.60对应的Gradle版本是5.4.1,警告里说的不兼容是因为可能你本地Gradle版本不对:
- 打开
android/gradle/wrapper/gradle-wrapper.properties,把distributionUrl改成:distributionUrl=https\://services.gradle.org/distributions/gradle-5.4.1-all.zip - 如果想知道具体哪些特性被弃用了,执行
cd android && ./gradlew build --warning-mode all,根据输出的提示调整对应的Gradle配置就行,一般都是一些旧的task写法或者插件版本的问题,跟着提示改就好。
3. 最后做个全面清理
有时候缓存会搞事情,建议你:
- 删除项目根目录的
node_modules,重新执行npm install - 再执行
cd android && ./gradlew clean - 重新运行项目
react-native run-android
按照这些步骤操作下来,应该就能顺利跑起来了。
内容的提问来源于stack exchange,提问作者s-leg3ndz
相关产品推荐
相关产品推荐

