React Native学习资料

本文记录React Native 从环境搭建、签名打包等等一些资料。

React Native进行签名打包成Apk

对于项目中不存在react.gradle文件的项目打包

首先命令切换到该react native项目的主目录,然后运行以下的命令,生成assets文件夹

mkdir -p android/app/src/main/assets

紧接着运行以下命令,进行生成inde.android.bundle文件

1
2
3
react-native bundle --platform android --dev false --entry-file index.android.js \
--bundle-output android/app/src/main/assets/index.android.bundle \
--assets-dest android/app/src/main/res/

最后运行之前的命令,进行代码和资源文件打包,生成的带有签名的apk还是在上面的目录中。

cd android && ./gradlew assembleRelease

注意:这时有可能不成功,报红色的错误

1
2
3
* What went wrong:
Execution failed for task ':app:processReleaseResources'.
> com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process 'command 'D:\software\android\sdk\build-tools\23.0.1\aapt.exe'' finished with non-zero exit value 1

这可能是由于在生成res时图片资源的名称过长,超过了windows的限制导致的。

运行Apk

cd android && ./gradlew installRelease

React Native库版本升级(Upgrading)与降级讲解

  • 更新React Native项目依赖包版本

查看本地的React Native的版本

react-native --version

查询react-native的npm包得最新版本(react native的npm包的地址为: https://www.npmjs.com/package/react-native ),或者采用命令npm info react-native进行查看。

在修改package.json文件后,我们需要命令行切换到项目的主文件夹重新执行

npm install

根据官网文档能知道:
现在已经支持在项目中运行npm install - -save命令来进行安装react-native的新版本了,例如我们需要更新到0.18版本可以采用终端执行如下的命令:

npm install --save react-native@0.18
  • 更新项目templates文件

新的npm包会包含更新在运行react-native init命令生成的一些动态文件,例如init创建项目的时候会生成iOS和Android的子项目,我们可以通过以下的命令进行获取最新的代码

react-native upgrade

以上的react-native upgrade会进行检查项目的文件,然后进行如下几个操作:

  • 如果是新添加的文件,会进行直接创建
  • 如果更新的文件和当前项目的文件是一样的,就会直接忽略跳过
  • 如果更新的文件和当前项目的文件不同,有冲突的情况,会让我们进行选择是保留原来的文件还是用更新的文件覆盖,这个要看实际情况了。

现在更新已经完成了,下面就是运行一下看一下是否能够成功运行,运行如下命令:

react-native run-android
  • React Native版本降级方法

刚刚我们已经完成React Native库升级了,现在假如有这样的一个情况,我们的项目直接创建的用了最新版本的,突然发现最新版本可能不太稳定,在开发过程中就会遇到不可预期的bug。那么就可以考虑进行降级到一个比较稳定的版本比较保险。第一种方案我们参考上面的流程就行了,上面是修改成最新版本的,那么现在我们修改一个低版本,然后执行上面的同样的命令就OK了。但是我们降级这边给大家讲第二个方案,还记得上面有一个官方推荐安装react-native的命令不?

npm install --save react-native@0.18

那么我们现在假如要降级到0.17版本,如下命令行执行一下就OK了。

npm install --save react-native@0.17
  • 总结
    无论是升级还是降级只需要两步,先后执行下面两个命令
1
2
3
npm install --save react-native@0.18

react-native upgrade

参考资料:

环境安装:
【React Native开发】React Native For Android环境配置以及第一个实例
史上最详细Windows版本搭建安装React Native环境配置
【React Native开发】React Native进行签名打包成Apk
【React Native开发】React Native库版本升级(Upgrading)与降级讲解

控件资料:
【React Native开发】React Native控件之View视图讲解
【React Native开发】React Native控件之Text组件讲解
【React Native开发】React Native控件之Image组件讲解与美团首页顶部效果实例(10)
【React Native开发】React Native控件之TextInput组件讲解与QQ登录界面实现(11)
【React Native开发】React Native控件之ProgressBarAndroid进度条讲解(12)
【React Native开发】React Native控件之DrawerLayoutAndroid抽屉导航切换组件讲解(13)
【React Native开发】React Native控件之ScrollView组件讲解(14)
【React Native开发】React Native控件之ToolbarAndroid工具栏控件讲解以及使用(15)
【React Native开发】React Native控件之Switch与Picker组件讲解以及使用(16)
【React Native开发】React Native控件之ViewPagerAndroid讲解以及美团首页顶部效果实例(17)
【React Native开发】React Native控件之Touchable*系列组件详解(18)
【React Native开发】React Native控件之ListView组件讲解以及详细实例(19)
React Native超棒的LayoutAnimation(布局动画)
【React Native开发】React Native控件之PullToRefreshViewAndroid下拉刷新组件讲解(20)
【React Native开发】React Native控件之RefreshControl组件详解(21)
【React Native开发】React Native控件之WebView组件详解以及实例使用(22)
【React Native开发】React Native控件之组件封装实例(Button按钮)
【React Native开发】React Native控件之Navigator组件详解以及实例(23)
【React Native开发】React Native API模块之ToastAndroid详解及使用(24)
【React Native开发】React Native API模块之Alert弹出框详解及使用(25)
【React Native开发】React Native API模块之AppState详解(26)
【React Native开发】React Native 控件之Cilpboard粘贴板使用详解(27)
【React Native开发】React Native API模块Dimensions屏幕宽高详解(30)
【React Native开发】React Native API模块BackAndroid拦截返回键事件处理详解(31)
【React Native开发】React Native API模块StyleSheet样式表详解(32)
【React Native开发】React Native API模块PixelRatio设备像素密度详解(33)
【React Native开发】React Native控件之DatePickerAndroid时间日期选择器组件讲解(34)
【React Native开发】React Native控件之StatusBar状态栏详解(35)
【React Native开发】React Native API模块之AlertIOS弹框详解-适配iOS开发(36)
【React Native开发】React Native控件之PickerIOS选择器详解-适配iOS开发(37)
【React Native开发】React Native 控件之SegmentedControlIOS分段组件详解-适配iOS开发(38)
【React Native开发】React Native控件之SliderIOS滑块组件详解-适配iOS开发(39)
【React Native开发】React Native控件之TimePickerAndroid时间选择器组件详解及实例(43)
【React Native开发】React Native API模块之AppStateIOS运行状态详解-适配iOS开发(44)
【React Native开发】React Native API模块之ActionSheetIOS可点击弹框详解-适配iOS开发(45)
【React Native开发】React Native API模块之Vibration控制设备震动详解(46)
【React Native开发】React Native特定平台代码说明(47)
【React Native开发】React Native API模块之AppRegistry应用注册入口详解(48)
【React Native开发】React Native基础之Linking Libraries链接库配置-适配iOS开发(49)
【React Native开发】React Native基础之真机设备运行调试应用-适配iOS开发(50)
【React Native开发】React Native进阶之原生模块封装基础篇1-适配Android开发(51)
【React Native开发】React Native基础之从源代码编译详解-适配Android开发(52)
【React Native开发】React Native进阶之原生模块特性篇详解-适配Android开发(53)
【React Native开发】React Native进阶之原生UI组件封装详解-适配Android开发(54)
【React Native开发】React Native模块之Linking详解以及实例-Android/iOS双平台通用(55)
【React Native开发】React Native 控件之Modal详解-Android/iOS双平台通用(56)
【React Native开发】React Native 移植原生iOS平台项目(57)
【React Native开发】React Native 进阶之原生混合与数据通信开发详解-适配Android开发(58)
【React Native开发】React Native进阶之原生模块封装基础篇详解-适配iOS开发(59)
【React Native开发】React Native进阶之原生模块封装特性篇详解-适配iOS开发(60)
【React Native开发】React Native 进阶之原生混合与数据通信开发详解-适配iOS开发(61)
【React Native开发】React Native API模块之LayoutAnimation布局动画详解-Android/iOS通用(62)
【React Native开发】React Native基础之核心组件使用教程介绍-Core Components(63)
【React Native开发】React Native进阶之Animated动画库详解-基础篇(64)
【React Native开发】React Native进阶之Animated动画库详解-实例篇(65)
【React Native开发】React Native模块之InteractionManager(交互管理器)详解(66)
【React Native开发】React Native模块之Timers(定时器)详解(67)
【React Native开发】React Native模块之Share调用系统分享应用详解(68)
【React Native开发】React Native模块之PermissionsAndroid权限检测与请求应用详解(69)
【React Native开发】React Native 基础之Props(属性)与State(状态)使用讲解(70)
【React Native开发】React Native 基础之Style(样式)讲解(71)

移动端数据库新王者-Realm React Native版本应用详解之抛砖引玉入坑篇(一)
移动端数据库新王者-Realm React Native版本应用详解之略陈固陋爬坡篇(二)
移动端数据库新王者-Realm React Native版本应用详解之略陈固陋爬坡篇续1(三)

React Native技术文章:
[319-React Native上海交流会报告]-React Native跨平台开发之旅PPT内容(附下载链接)
React Native开发阶段性总结(2016-5-20)
[RN实战-嘎嘎商城]之仿快递时间轴布局实现(订单状态)
[RN实战-嘎嘎商城]之轻松实现Tab底部菜单导航栏切换效果-Android/iOS双适配
[RN实战-嘎嘎商城]之商家详情界面布局分析与实现
[RN实战-嘎嘎商城]之记一次项目Redux重构
React Native实战系列教程之自定义原生UI组件和VideoView视频播放器开发

React Native开源控件:
[译]React Native开源图表组件(react-native-chart-android)
[译]React Native开源Material Design组件(react-native-material-design)
[译]React Native二维码图片生成组件(react-native-qrcode)
[译]React Native下拉菜单组件(react-native-menu)
[译]React Native开源图片裁剪组件(react-native-image-cropping-ios)
[译]React Native开源仿照Android平台的Toast组件(react-native-sk-toast)
[荐]React Native开源Android平台的TabBar效果组件(react-native-android-tabbar)
[译]React Native开源广告轮播组件(react-native-viewpager)
[译]React Native开源高德地图定位组件(react-native-amap-location)
[译]React Native开源百度地图组件(react-native-baidumap-kit)
[译]React Native开源获取设备信息组件(react-native-device-info)
[译]React Native开源网络处理-上传下载组件(react-native-networking)
[译]React Native开源bootstrap风格按钮组件(react-native-bootstrap-buttons)
[译]React Native开源时间日期选择器组件(react-native-datetime)
[译]React Native开源封装Google地图组件(react-native-google-maps)
[译]React Native开源iOS图表组件(react-native-ios-charts)
[译]React Native开源图片选择器组件(react-native-android-imagepicker)
[译]React Native开源VLC多媒体播放器组件(react-native-vlc-player)
[译]React Native开源SQLite数据库组件(react-native-sqlite-storage)
[译]React Native开源图片缩放处理组件(react-native-image-zoom)
[译]React Native开源即时聊天XMPP IM组件(react-native-xmpp)
[译]React Native开源PDF阅读器组件(react-native-pdf)
[译]React Native开源仿QQ微信列表左右滑动删除等功能组件(react-native-swipeout)
[译]React Native开源播放器Video组件(react-native-video)
React Native开源封装AES,MD5加密模块(react-native-encryption-library)
超详细React Native实现微信好友/朋友圈分享功能-Android/iOS双平台通用

React Native开源项目:
React Native开源项目-仿拉勾网iOS客户端
React Native开源项目-清水河畔BBS客户端
React Native开源项目-仿美团iOS客户端
React Native开源项目-知乎日报客户端
React Native开源项目-豆瓣搜索客户端(基于豆瓣Open API)
React Native开源项目-新闻客户端(News)
React Native开源项目-码农客户端(iOS版本)
React Native开源项目-Hacker新闻客户端(Android和iOS)
React Native开源项目-Github客户端(Android、iOS)-来自阿里开发人员
React Native开源项目-iOS资讯头条APP
React Native开源项目-iOS新浪微博客户端
React Native开源项目-仿拉勾网客户端(兼容Android、iOS平台)
React Native开源项目-CNode论坛客户端
React Native开源项目-干货集中营客户端(Gank.io)
reading
React Native开源项目-知识点记忆客户端
React Native开源项目-BBC新闻客户端
React Native开源项目-开源中国Git@OSC客户端
React Native开源项目-仿猫眼电影客户端
学习React Native必看的几个开源项目(第一波)
学习React Native必看的几个开源项目(第二波)
带大家一步步开发一个电影数据的App(Movie Fetcher)
React Native开源项目-公司移动OA办公客户端
React Native开源项目-漫威电影客户端
React Native开源项目-图片展示客户端RN-BiZhi
React Native开源项目-仿B站客户端(Android)
React Native开源项目-嘎嘎商城客户端(持续更新中)
React Native开源项目-云翻译客户端
React Native开源项目-贷贷助手客户端
React Native开源项目-仿宝宝健康客户端
React Native开源项目-健康养生客户端
React Native开源项目-小BBS客户端

React Native工具插件:
React Native VSCode IDE超强开发插件介绍(智能,代码提醒,运行调试…)
【React Native开发】React Native API模块之NetInfo(网络信息)使用详解(28)
【React Native开发】React Native API模块之AsyncStorage(持久化存储)使用详解(29)
【React Native开发】React Native控件之TabBarIOS和TabBarIOS.Item组件详解及实例(40)
【React Native开发】React Native控件之ProgressViewIOS进度加载组件详解及实例(41)
【React Native开发】React Native控件之ActivityIndicatorIOS进度指示器组件详解及实例(42)

React Native Running And Debugging
【React Native开发】React Native应用设备运行(Running)以及调试(Debugging)

编译其它React Native项目:
超详细Windows版本编译运行React Native官方实例UIExplorer项目(多图慎入)

疑难汇总:
React Native疑难点,问题深坑最强总结帖(不断更新中)

Android Studio项目配置:
优雅的Android Studio项目配置–常用库和版本管理

Android控件资料:
Design支持库TabLayout打造仿网易新闻Tab标签效果
打造QQ6.X最新版本侧滑界面效果实例

工具技术:
干货分享:分析Android应用使用的技术框架和开源库
实时消息:JetBrains正式发布Kotlin 1.0,JVM和Android上更好用的语言

热评文章