RN升级0.64.2遇到的问题

尝试新建一个0.62的RN工程

输入命令:react-native init finereact0622 --version 0.62.2
遇到问题:应该是需要升级node版本,需要大于12,但是当前是11.10.1


image.png

使用nvm list命令查看本地node版本


image.png

nvm use v12.0.0切换


image.png

再次创建仍然提示node版本低,原来default版本还是旧版本,所以执行nvm alias default v12.0.0
发现还是不行,需要重启下电脑才可以

image.png

还是node版本问题,再切换一次
这次没问题了,打开工程先执行npm install,再执行react-native run-android,成功运行

用Android Studio打开,打算参考工程最新的脚本配置等内容,提示错误,应该是需要升级Android Studio:


image.png

升级后build工程,jdk路径有问题:


image.png

原jdk路径是:/Applications/Android Studio.app/Contents/jre/jdk/Contents/Home
改成:/Library/Java/JavaVirtualMachines/jdk1.8.0_201.jdk/Contents/Home
再去build就好了

如果仍然有问题,就加上这个:


image.png

原生遇到的问题

gradle版本不匹配,点击升级:


image.png

jvm内存爆了,增加一些配置解决此问题:


image.png

image.png

编译问题:
这个是在settings.gradle里面引入node_modules的脚本,然后可以传入一些配置运行,具体配置信息不明。
问题可能是node运行时,require('react-native/cli')找不到了,但我在node_modules中手动去找是没有问题的,可能node环境存在一点问题?github上找到了类似的问题,Android和IOS都会出现,暂时没有明确的解决方法,所以先屏蔽掉引入这段脚本。
https://github.com/react-native-community/cli/issues/1119

image.png

运行报错:


image.png

打详细堆栈发现,可能是和华为推送的AndroidManifest有冲突,所以先屏蔽掉华为推送:


image.png

https://stackoverflow.com/questions/58104159/could-not-get-unknown-property-instantrunmanifestoutputdirectory-for-task-ap
找到了类似的问题,解决方案是升级华为推送版本
com.huawei.agconnect:agcp:1.4.1.300
果然可以了

image.png

找不到style的AppTheme了,先暂时把style相关的文件移动到demoApp里,之前是在base里面
可能是demoApp依赖base有问题,先换一种依赖方式,直接依赖本地源码:


image.png
RN遇到的问题:

创建的0.62工程是给我们升级RN工程做参考的,后面遇到问题可以进行比对,现在直接执行原工程的RN升级。
先把0.62参考工程的package.json的内容拷过来,有的需要升级的,暂时没去动,不知道升级有什么影响,后续再处理。
然后npm install, 发现有些我们patch过的内容,可能需要重新适配一下,我这边就先跳过了。


image.png

完成后有一些warning:


image.png
image.png

resolveAssetSource找不到,好像是老问题了,可能是别名有问题。
我们的别名设置是在babel.config.js,RN的不太清楚,暂时改成引用具体路径:


image.png

ColorPropType被移除了,暂时屏蔽掉


image.png

findNodeHandle和UIManager引用问题:


image.png

报错BlobModule转换有问题,需要原生处理一下

过了一会发现报错没了,变成了


image.png

0.62:

ColorPropType:


image.png
image.png

先把HTMLInject注释掉


image.png

react-native有些库被移除了,需要使用第三方库代替,具体包括:
ART、ListView、SwipeableListView、WebView、NetInfo、CameraRoll、ImageStore、ImageEditor、TimePickerAndroid、ViewPagerAndroid等
详见react-native/index

ListView:


image.png

引入方式:import ListView from 'deprecated-react-native-listview';

问题:


image.png

image.png

解决方案


image.png

NetInfo:
安装:npm install --save @react-native-community/netinfo
然后要把原生代码放到原生工程,才能运行起来:


image.png

这种第三方库我们通常是放到third工程里,为了方便调试和运行,我们暂时放到report工程
问题:


image.png

解决:
传参变了
image.png

ViewPager:
老办法


image.png

image.png

原生也需要引入此模块

RNFS报错:
原生需要更新一下版本,后面放到库里面


image.png

RNFS的copyFile方法参数变化:


image.png

直接参数适配:


image.png

FCTTouchableAndroid报错没找到:

image.png

确认了一下代码,感觉写的没什么问题,debug调试一下,问题居然没了。原因暂时不明。
换了FCTSafeAreaView没有这个问题,于是对比一下差异,发现原生端这个方法导致的问题,注释掉就好了,原因需要继续研究。


image.png

换一下接口就好了,暂时不清楚这两个接口有什么差异,我们两个接口都在用,并且效果是一样的:


image.png

又研究了一下不是接口的问题,是实现有问题,改成下面这样就可以了:


image.png

SVG报错:


image.png

类似的方案

AsyncStorage报错:


企业微信截图_a2424daa-5648-48ee-aa1a-3191cefb2029.png

npm install @react-native-async-storage/async-storage

升级0.64后登录,viewpager这个三方库报错闪退:
java.lang.IncompatibleClassChangeError: Found interface com.facebook.react.u
原因是third包打包时依赖的是0.62,和0.64冲突了,后面所有third都要基于0.64打一次,避免错误

image.png

image.png

IFStatusBar.setxxx方法调用报错,好像setXXX方法是undefined,实测也调用不到原生,但我用原本的StatusBarModule就是正常的

原生网络库定制:

可能还有些问题


image.png
image.png
表单点击文本控件后闪退

原生报错:Unable to find module for UIManager* - react-native

解决方法,升级0.64.2后解决:
https://github.com/facebook/react-native/issues/31245#issuecomment-811587180

原生定位模块

定位功能被RN舍弃了,需要自己开发接口实现
或者使用第三方库:
https://www.npmjs.com/package/@react-native-community/geolocation

原生模块maven地址

http://mvn.finedevelop.com/#browse/browse:android-public

image.png

OEM打包问题

1.GenerateAndroidOfflineProject工程打包,报错找不到0.64.2:
可能是因为REACT_ROOT写的相对路径,不知道为什么找不到,写绝对路径就正常了


image.png

2.报错本地maven地址找不到,并且无法创建:
实际上这个路径是在的,可能第一次打包有问题,再次打包就好了。
然后再打包有问题,可能是这里面的内容需要手动删除,删掉后就好了。


image.png

3.生成离线bundle有问题:
怀疑是node版本的问题,修改node成v12.13.0就好了,可能是这个问题。


image.png

image.png

4.PublishAndroidOfflineProject报错
执行cp -rf命令报错,应该是把一些内容复制到AndroidOemTest文件夹里面,问题是找不到文件夹。我手动创建了一个AndroidOemTest文件夹,就正常了。


image.png
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,324评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,303评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,192评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,555评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,569评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,566评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,927评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,583评论 0 257
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,827评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,590评论 2 320
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,669评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,365评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,941评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,928评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,159评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,880评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,399评论 2 342

推荐阅读更多精彩内容