react-native 找不到符号问题的解决方案

news/2024/7/15 18:41:33 标签: react native, react.js, javascript

最近(2022年11月4日)很多 react-native 项目上都出现了打包失败或者是开发环境无法启动的问题,报错内容很多:找不到符号、方法不会覆盖或者实现超类型的方法、程序包 XXX 不存在等。但点进源码可以发现几乎都是 com.facebook.react 下的某个包找不到导致的。

解决方法

react native 大于0.63 的直接删除 node_modules 然后重新yarn install,然后进入android 目录

清除缓存 grawlew clean 重新yarn android即可

react native 小于0.63 的 在 android\build.gradle 添加如下内容

def REACT_NATIVE_VERSION = new File(['node', '--print',"JSON.parse(require('fs').readFileSync(require.resolve('react-native/package.json'), 'utf-8')).version"].execute(null, rootDir).text.trim())

allprojects {
    configurations.all {
        resolutionStrategy {
            // Remove this override in 0.65+, as a proper fix is included in react-native itself.
            force "com.facebook.react:react-native:" + REACT_NATIVE_VERSION
        }
    }
    repositories {

大致意思就是获取到当前使用的 react-native 版本,然后把所有依赖项目的 rn 都覆盖成这个版本

问题的起因来自于早期的 react-native 模板项目,其中构建文件(.\android\build.gradle)中包含这么一行配置:

implementation 'com.facebook.react:react-native:+'

可以看到这里配置了 获取当前依赖库里能找到的最高等级的 react-native 版本,这些依赖跟react native 版本不匹配导致构建失败

如果遇到获取资源失败试着在android\build.gradle里面修改

把 jcenter() 修改成 mavenCentral(),jcenter即将停止服务


http://www.niftyadmin.cn/n/1319132.html

相关文章

java的wait与notify

wait与notify是java同步机制中重要的组成部分。结合与synchronized关键字使用,可以建立很多优秀的同步模型。 synchronized(this){}等价与public synchronized void method(){.....} 同步分为类级别和对象级别,分别对应着类锁和对象锁。类锁是每个类只有…

spring.net之aop加单例模式编写无try catch程序

为应付软件小白的各种无脑操作(不过话说回来,软件就是给小白使用的),常常需要在调用方法时增加众多重复的try/catch,后来拜读artech的《如何编写没有Try/Catch的程序》,了解到可以将try/catch统一处理&…

守护线程概念及实例

守护线程在没有用户线程可服务时自动离开,在Java中比较特殊的线程是被称为守护(Daemon)线程的低级别线程。这个线程具有最低的优先级,用于为系统中的其它对象和线程提供服务。 将一个用户线程设置为守护线程的方式是在线程对象创建…

Android学习链接大放送

虽然贴链接这种事情。。真是一种很偷懒的做法。。。 但是我一个小菜鸟,果断还是要以多向别人学习为主。。。 好资源要和大家分享对不对! 况且。。放博客里。。比收藏夹的利用几率要大一点! 原作者应该也很喜欢我这种贴链接打广告的做法吧。。…

java.sql.SQLException: ORA-01461: can bfor insert into a LONG column问题分析与小结

java.sql.SQLException: ORA-01461: can bfor insert into a LONG column 1.发现系统报此问题的第一反应是插入数据时,数据长度超出数据库的字段长度。 2.而根据错误日志不难分析出是向邮件发送信息表中插入数据时,数据超过定义的最大值限制了&#xff0…

python tips - 静态方法和类成员方法

摘自 《Python 基础教程》 9.5.2 静态方法和类成员方法 p149 在讨论实现属性的旧方法前,先让我们绕道而行,看看另一对实现方法和新式属性的实现方法类似的特征。静态方法和类成员方法分别在创建时被装入Staticmethod类型和Classmethod类型的对象中。…

JSP中文乱码分析

在JSP的开发过程中,经常出现中文乱码的问题。 首先了解一下Java中文问题的由来: Java的内核和class文件是基于unicode的,这使Java程序具有良好的跨平台性,但也带来了一些中文乱码问题的麻烦。原因主要有两方面,Java和J…

java多线程join的作用与用法

对于JAVA的join,JDK 是这样说的:join public final void join (long millis )throws InterruptedException Waits at most millis milliseconds for this thread to die. A timeout of 0 means to wait forever。字面意思是等待一…