react-native -android 错误汇总
2018-04-16 本文已影响31人
sunney0
本文用于记录开发过程中遇到的问题和解决方案。供参考学习用。
文中真机为红米5,系统为:MIUI9 8.4.12开发者版
1.react-native run-android
操作:命令行执行react-native run-android
真机运行程序,报错如下:
原因:
手机USB调试开启了,但是USB安装应用没有开启。
解决:(小米,MIUI9)
设置-系统和设备:更多设置-开发者选项-调试-USB调试和USB安装都要开启。
image.png
如果没有找到开发者选项,应该先开启开发者选项。
设置-我的设备-全部参数-连续点击"MIUI版本"4下(忘记具体几下了,多点两下就行)-点击后会提示你开发者选项已开启
image.png
2.Rect-Navigation 导航组件警告
操作:Rect-Navigation官网demo调试页面跳转时报警告:
image.png
原因:查询百度得知,isMounted()函数被RN弃用了,并未找到解决方案。本人查询Rect-Navigation 组件发现其并为使用isMounted()。于是给Rect-Navigation github 官方提issues,得到回复并为本质解决该问题,只是忽略了黄屏警告。应该时RN的bug,希望早日修复。
解决:无解决方案,暂时忽略该黄屏警告,在index.js 中添加以下代码:
import { YellowBox } from 'react-native';
YellowBox.ignoreWarnings(['Warning: isMounted(...) is deprecated', 'Module RCTImageLoader']);
另:屏蔽YellowBox(黄屏警告)与RedBox(红屏报错)的方法如下:
调用console.warn方法会在屏幕上产生一个黄色背景的信息。点击这行信息会转入全屏的警告页面。而调用console.error方法则会直接产生一个全屏的红色背景报错页面。
在默认情况下,开发模式中启用了黄屏警告。可以通过以下代码关闭:
console.disableYellowBox = true;
console.warn('YellowBox is disabled.');
你也可以通过代码屏蔽指定的警告,像下面这样设置一个数组:
console.ignoredYellowBox = ['Warning: ...'];
数组中的字符串就是要屏蔽的警告的开头的内容。(例如上面的代码会屏蔽掉所有以Warning开头的警告内容)