React native android 最常见的10个问题
这里逐条记录下最容易遇到的React native android 相关case:
- 1. app启动后,红色界面,unable load jsbundle :
- 解决办法:一般来说就是,你是用dev-serve方式,且你的server没有正确匹配上,如果是用手机跑的话,需要pc和手机在同一个wifi下,且通过menu键设置menu-ip为pc的ip,如果是模拟器,则不需要手动设置ip,设置的话,反倒会出错
- 2. app启动后,红色界面,unRegisteredProject
- 提示提示什么,你的app没有在启动时候注册
- 解决办法:这个后面也是一看就知道的错误,就是你的index.android.bundle中的最下面写的那个
- ‘componetNameInYourLocalProject’在你的java代码中不是叫这个名字,自己check下,立刻就能修复

- 3. require(”xxx”)的组件失败
- js代码中有时候会出现require(”xxx”)的组件出错 解决办法:检测该node组件是否存在你的服务器上,如果是自己封装的NativeModule话可以直接使用

- 4.调试
- 解决办法:可以利用pc端的chrome的 debug工具进行js端的调试,native的调试就只能用logcat跟踪了,目前看到大部分的错误都是自己代码的问题,ReactAndroid本身的Crash较少
- 5.so库的问题
- gradle的话,可以通到ndk filter来控制:
android { defaultConfig { ndk { abiFilters “x86″, “armeabi-v7a” } }
- maven的话,可以手动通过libs下的so拷贝来解决问题。
- 这块有个比较大的坑就是,默认引入的jsc.aar中存在armabi文件夹,但是里面没有jsc.so 。导致在多个地方,去编码源码时ndk方面会报错。
- 6. 关于设备MinSdkVerison
- 默认Android要求4.1以上设备(4.0根据网络数据大概占比0.7比例,随着大部分app已经不支持4.0以下设备了,这块倒还可以接受)
- 刚开始一直使用一个5.0的设备进行ReactAndorid的测试和开发,后来方向,其实搞上一个5.0+的Genymotion模拟器联调起来效率会更高。
- 7.UIExplorer demo问题
- 之前一直在看具体接入和代码实现方面的,当大头的工作回过头来看,其实当时应该先从这个UIExploror入手的话,效率和进度应该会有较大提高的。
- 这块需要编译react源代码,如果遇到了https://github.com/facebook/react-native/issues/3976 的问题,可以使用我在下面回复的方法hook,但是本质原因还是那个armabi jsc.so的问题

- 8.能力覆盖范围
- 根据团队之前React iOS的经验,跟进主干代码,依赖RN本身提供的UI组件可以满足大部分业务场景。
- 当然自己如果想复用之前团队沉淀下来的,配合着UIManager和UIModule这块本身工作量到也不算太大。
- 但是应该尽可能的和团队以后的JS端和iOS端的协议接口保持一致,让React最大的意义发挥出来,“lean once run everywhere”
- 9.数据安全
- 0.14之前只支持dev-pc 和assert方式,从0.14.0 realease版本开始支持local file patch加载方式,最新版0.15.1。
- 因为如果要动态能力,js必定是走网络端下发的,js本身是明文(即使JS做了混淆),数据防劫持的保护还是必须要做的,这点可以配合https防篡改+sign校验来做
- 10.JNI消息轮训带来的影响
- 由于JNI的通信限制,Java层和Native通信是单向的,且为了保证RN的16ms的渲染频率,所有Java-Native-jscore层的通信都是异步的,这样可能对于JAVA层的UI渲染是个性能问题。
- 当消息量非常大或ListView页面非常复杂时候,每1层Cell的渲染要以Css-ScrowllerView模型需要UI线程的连续绘制,对于瀑布流负责listview等可能会存在性能问题,但是该问题本身肯定是优于H5的体验的
转:http://codecloud.net/react-native-android-10-problems-6573.html
React native android 最常见的10个问题的更多相关文章
- Windows 10 & React Native & Android
Windows 10 & React Native & Android https://facebook.github.io/react-native/docs/getting-sta ...
- react-native —— 在Windows下搭建React Native Android开发环境
在Windows下搭建React Native Android开发环境 前段时间在开发者头条收藏了 @天地之灵_邓鋆 分享的<在Windows下搭建React Native Android开发环 ...
- react-native —— 在Mac上配置React Native Android开发环境排坑总结
配置React Native Android开发环境总结 1.卸载Android Studio,在终端(terminal)执行以下命令: rm -Rf /Applications/Android\ S ...
- React Native & Android & iOS & APK
React Native & Android & iOS & APK https://play.google.com/apps/publish/signup/ $ 25 bui ...
- React Native & Android & iOS
React Native & Android & iOS React Native & Android & iOS https://facebook.github.io ...
- React Native Android原生模块开发实战|教程|心得|怎样创建React Native Android原生模块
尊重版权,未经授权不得转载 本文出自:贾鹏辉的技术博客(http://blog.csdn.net/fengyuzhengfan/article/details/54691503) 告诉大家一个好消息. ...
- React Native Android启动白屏的一种解决方案上
我们用RN去开发Android应用的时候,我们会发现一个很明显的问题,这个问题就是启动时每次都会有1~3秒的白屏时间,直到项目加载出来 为什么会出现这个问题? RN开发的应用在启动时,首先会将js b ...
- React Native Android 环境搭建
因为工作需要,最近正在学习React Native Android.温故而知新,把学习的内容记录下来巩固一下知识,也给有需要的人一些帮助. 需要说明的是,我刚接触React Native也不久,对它的 ...
- React Native & Android & Text Input
React Native & Android & Text Input react native clear input value https://stackoverflow.com ...
随机推荐
- [NLP自然语言处理]计算熵和KL距离,java实现汉字和英文单词的识别,UTF8变长字符读取
算法任务: 1. 给定一个文件,统计这个文件中所有字符的相对频率(相对频率就是这些字符出现的概率——该字符出现次数除以字符总个数,并计算该文件的熵). 2. 给定另外一个文件,按上述同样的方法计算字符 ...
- MongoDB服务安装
0.解压压缩包:D:\lab\mongodb 1.创建目录: D:\lab\mongodb\data D:\lab\mongodb\data\db D:\lab\mongodb\data\log D: ...
- bin文件和elf文件
ELF文件格式是一个开放标准,各种UNIX系统的可执行文件都采用ELF格式,它有三种不同的类型: 可重定位的目标文件(Relocatable,或者Object File) 可执行文件(Executab ...
- [置顶] 遵循Java EE标准体系的开源GIS服务平台之二:平台部署
传送门 ☞ 系统架构设计 ☞ 转载请注明 ☞ http://blog.csdn.net/leverage_1229 传送门 ☞ GoF23种设计模式 ☞ 转载请注明 ☞ http://blog.csd ...
- java字节码指令集
字节码指令集 Java虚拟机的指令由一个字节长度的.代表着某种特定操作含义的操作码(Opcode)以及跟随其后的零至多个代表此操作所需参数的操作数(Operands)所构成. 对于大部分为与数据类型相 ...
- quagga源码分析--路由信息处理zebra-rib
对于各个协议生成的路由信息的处理属于quagga中非常重要的一个功能,如何在内核进行路由增加,更新,删除是一个复杂的过程. quagga在thread任务调度中加入了一种工作队列,work_queue ...
- Python自动化开发-变量、数据类型和运算
一.变量 变量定义:Variables are used to store infomation to referrenced and manipulated in a computer progra ...
- 队列Queue FIFO先进先出 栈Stack FILO先进后出
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...
- 【Backbone】 Backbone初探
前言 在此之前研究了一段React,但是不得不承认React.Vue等MVVM框架相对于原有的Jquery来说,简直是翻天覆地的不同.它们之间的差异不仅仅体现在框架思维的不同,而是ES5到ES6的编程 ...
- CodeForces 721C Journey
$dp$,拓扑排序. 记$dp[i][j]$表示走到节点$i$,走过了$j$个点的最小时间,然后就可以递推了.要注意的是节点$1$的入度一开始不一定等于$0$. #pragma comment(lin ...