1 Android端问题概述
更新RN版本到0.61.0后,打包命令报错,报错原因往往来源于第三方库,因为第三方库的版本还是比较老旧的版本,它们没有适配新android版本或新的构建工具。当我们使用新的构建版本去构建APP时,就会发生很多错误。
2 构建APP的问题种类
2.1 gradle配置不正确
可用init命名初始化一个新RN版本的项目,参考里边的gradle配置,然后更改自己项目的gradle配置。
2.2 RN迭代API或摒弃组件
1、react-native新版本不再支持ListView组件,若项目存在ListView组件的引用会报错。
2、WebView组件(导致APP报错不能正常运行)
错误信息:Invariant Violation: WebView has been removed from React Native. It can now be installed and imported from 'react-native-webview' instead of 'react-native'。
错误原因:新版本react-native剔除了WebView组件,把它放到了react-native-webview库当中。引用WebView组件须从react-native-webview库获取。
3、RN新版本移除了AsyncStorage的API,将其放到了@react-native-community/async-storage库当中。
错误信息:AsyncStorage has been extracted from react-native core and will be removed in a future release. It can now be installed and imported from '@react-native-community/async-storage' instead of 'react-native'. See https://github.com/react-native-community/react-native-async-storage
错误原因:RN新版本移除了AsyncStorage的API,将其放到了@react-native-community/async-storage库当中。
解决办法:
(1)yarn add @react-native-community/async-storage
(2)import AsyncStorage from '@react-native-community/async-storage';
2.3 依赖冲突
1、android库版本的冲突;
2、第三方库所依赖jar包的冲突。