开始玩 React Native 了

本贴最后更新于 2871 天前,其中的信息可能已经时移世异

React Native - 不会
iOS 开发 - 不会
Android 开发 - 不会

好吧,一切从 0 开始

  1. 首先入门安装环境 getting started
  2. Hello Word
  3. 据说要用 redux, 傻傻分不清楚 redux-router, react-router, react-router-redux。最终还是放弃了,直接去看大神的代码好了
  4. 开始照葫芦画瓢,不错不错,画出了成就感
  5. iOS 一切都还顺利,只是工程是已经建好的,down 下来的时候 shell 脚本需要 +x 一下。都还好,有错误提示,照着弄就好了。用 RN 命令和 Xcode 都非常的顺畅。
  6. 好了,接下来就是 Android 了。react-native run-android 至今都还无法享用。 蓝瘦,香菇 ~~~
  • 各种被强,从百度云盘上下载了 android-sdk-macosx,按照 Readme 弄好后,AS(Android Studio) 终于正常了,立马配置代理。mirrors.neusoft.edu.cn:80

  • 然后开始各种下载,门外汉一下就懵了。完全不知道该选什么,就只能照着 第一条 的入门教程随便选择了下。然后下载就比较慢啦 🐌

  • 最惨的是 Android 报的各种错,无从下手,只能一步一步 google 啦。什么 RN 所依赖的 buildToolsVersion 版本不一致呀;什么 RN 依赖的配置有问题呀;什么 Map 的源码要改一下啦;什么地图无法加载呀;什么需要摇一摇的弹出层需要权限呀;什么需要下载其他依赖呀。。。

  • OK,终于可以 run 啦。手机上跑起来的时候,都激动的想哭了

  • 接下来被告知要嵌入到 APP 里面。不是说好可以发单品的么?哎,又要开始继续折腾了

  • 一开始没看懂 app 集成,搜了其他文章了解了下,终于明白了,开始把需要嵌入到的工程下载下来。然后按步骤实施

  • 实施结束,整个工程居然报错 476 个,然后还可以在手机上跑起来。完全不解, RN 的时候,有半个错都不要想跑起来

  • 跑起来以后要找个按钮,点击了可以跳转到我们的界面。但是但是,这怎么写呢?完全不懂呀,心里好怕怕。出去溜达了一圈,开工。不就是个点击么。大概就是这样了 Intent intent = new Intent(); intent.setClass(HomeActivity.this, MyReactActivity.class); 完全不懂,先照着弄吧

  • 好吧,再次 run,oh,no。 闪退 😱 以前总是听测试说,你的 APP 又闪退了。不明白,为什么这么不耐操,一点点就闪退

  • 来来来, debug 走起。查了问题,据说是要加一下下面这个东西。天哪,完全不知道这是什么一个鬼。然后再次 run 的时候就需要下载 Android SDK,我不是已经下载过好几个了么?哎,我就在等待的时间写了这篇文章,口水话都写好了,你却还没下载完 ~~~

    ndk {
          abiFilters "armeabi-v7a", "x86"
      }
    

等一切结束后,我一定要让 react-native run-android 这个命令可以运行起来

  • 调试
    5 引用 • 35 回帖
  • iOS

    iOS 是由苹果公司开发的移动操作系统,最早于 2007 年 1 月 9 日的 Macworld 大会上公布这个系统,最初是设计给 iPhone 使用的,后来陆续套用到 iPod touch、iPad 以及 Apple TV 等产品上。iOS 与苹果的 Mac OS X 操作系统一样,属于类 Unix 的商业操作系统。

    85 引用 • 139 回帖 • 1 关注
  • Android

    Android 是一种以 Linux 为基础的开放源码操作系统,主要使用于便携设备。2005 年由 Google 收购注资,并拉拢多家制造商组成开放手机联盟开发改良,逐渐扩展到到平板电脑及其他领域上。

    334 引用 • 323 回帖 • 1 关注

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...
  • mainlove

    貌似 react 只是视图构建(我怎么感觉和用 gwt 写页面一样),路由什么的还是需要额外的 js
    js 真是搞得太复杂了

    1 回复
  • Vanessa

    事件,请求什么的都可以在里面写。都是组件化,一小点一小点的

    1 回复
  • someone

    这个行距略小,看起来有点累。

  • Angonger

    带带我

    1 回复
  • 714593351

    带带我 一起学

    1 回复
  • loocao

    为什么脱离我大 html,用 vue 不好么~

    1 回复
  • Vanessa

    来,一起呀。你走到哪一步了?

    1 回复
  • Vanessa

    先跟上我的节奏哦,还在处理 UncaughtException detected: java.lang.UnsatisfiedLinkError: couldn't find DSO to load: libreactnativejni.so 这个错误呢

  • Angonger

    向你提请求这一步

    1 回复
  • Vanessa

    有啥好的呀?

    1 回复
  • Vanessa

    不想被浪潮吞没呀

    1 回复
  • Vanessa

    好的。先把第一二步完成了再来见我

  • Eddie

    感觉前端框架太多,不如专心专研一个适合自己工作的。

    1 回复
  • Vanessa

    嗯。不会写 APP,就靠他了

    1 回复
  • loocao

    我只知道它好,别问我有啥好~

    1 回复
  • Eddie

    我是不是要期待一下黑客派的 APP?

    1 回复
  • Vanessa

    Symphony 用了最基本的 jQuery,别问我 jQuery 有啥好 😄

    本来早就想看什么 react,vue 之类的,angular 都还不太熟悉。只是碍于没有动力和没有项目可以去实践。。。。

  • Vanessa

    要不一起来吧

  • Vanessa

    @participants 节奏跟上没?准备开始进军热部署了

    couldn't find DSO to load: libreactnativejni.so 这个问题纠缠了 2 晚上,终于搞定了。

    吐槽一下破解过程吧:

    1. 先把原生 APP 项目 check 下来,按照步骤一步一步来。然后就 google 报错问题,说是 32 位和 64 位的问题,一顿乱修,还是错。回家睡觉

    2. 第二天新建了一个原生 APP 项目。好顺利,居然嵌入成功了。

    3. 无解了,找到 Android 开发小伙伴,他也一步一步来,居然成功了,还是只能怀疑自己

    4. 回家后把第一步修改过的 APP 项目代码 revert 了,重头来,还是不行

    5. 把 build.gradle 删了,把第二部的 copy 过来,修修改改,居然成功了

    6. diff 对比 build.gradle,这是个什么鬼,谁出来解释一下,看不懂呀?

       splits {
         abi {
           enable true
           reset()
           include "armeabi"
       	universalApk false
       	}
      }
      

    归根到底,还是自己太小白,啥都不懂,耽误了这么多时间 ~~~

  • Vanessa

    @participants 大家有没有收到 at 呀?

  • 88250

    @participants 测试一下参与者通知(其他地方重现不了,这有这个帖子可以好奇怪)..

  • wuhongxu

    V 大的 react 玩得怎么样了?我被搞得头疼脑大的了,前段时间忙另一个项目,现在又重新用 react,但是感觉里面有些细节想找人探讨 = =

    1 回复
  • Vanessa

    可以继承到其他 app 里面了。最近忙,进度有点慢了。

  • someone

    splits 是用于对不同的分辨率或者不同的处理器架构构建不同的apk文件
    include "armeabi"只包含了armeabi架构。所以想问下你的手机或者虚拟机是x86架构吗?

    1 回复
  • Vanessa

    应该不是,可能是第三方的 RN 依赖有用到。具体优化都没弄

请输入回帖内容 ...
Vanessa
我们终此一生,就是要摆脱他人的期待,找到真正的自己。 昆明

推荐标签 标签

  • 代码片段

    代码片段分为 CSS 与 JS 两种代码,添加在 [设置 - 外观 - 代码片段] 中,这些代码会在思源笔记加载时自动执行,用于改善笔记的样式或功能。

    用户在该标签下分享代码片段时需在帖子标题前添加 [css] [js] 用于区分代码片段类型。

    69 引用 • 372 回帖 • 1 关注
  • HHKB

    HHKB 是富士通的 Happy Hacking 系列电容键盘。电容键盘即无接点静电电容式键盘(Capacitive Keyboard)。

    5 引用 • 74 回帖 • 472 关注
  • 开源

    Open Source, Open Mind, Open Sight, Open Future!

    408 引用 • 3574 回帖
  • FreeMarker

    FreeMarker 是一款好用且功能强大的 Java 模版引擎。

    23 引用 • 20 回帖 • 463 关注
  • CloudFoundry

    Cloud Foundry 是 VMware 推出的业界第一个开源 PaaS 云平台,它支持多种框架、语言、运行时环境、云平台及应用服务,使开发人员能够在几秒钟内进行应用程序的部署和扩展,无需担心任何基础架构的问题。

    5 引用 • 18 回帖 • 168 关注
  • Gzip

    gzip (GNU zip)是 GNU 自由软件的文件压缩程序。我们在 Linux 中经常会用到后缀为 .gz 的文件,它们就是 Gzip 格式的。现今已经成为互联网上使用非常普遍的一种数据压缩格式,或者说一种文件格式。

    9 引用 • 12 回帖 • 135 关注
  • 思源笔记

    思源笔记是一款隐私优先的个人知识管理系统,支持完全离线使用,同时也支持端到端加密同步。

    融合块、大纲和双向链接,重构你的思维。

    22334 引用 • 89361 回帖
  • SOHO

    为成为自由职业者在家办公而努力吧!

    7 引用 • 55 回帖 • 21 关注
  • Sym

    Sym 是一款用 Java 实现的现代化社区(论坛/BBS/社交网络/博客)系统平台。

    下一代的社区系统,为未来而构建

    524 引用 • 4601 回帖 • 701 关注
  • 分享

    有什么新发现就分享给大家吧!

    248 引用 • 1792 回帖
  • ZeroNet

    ZeroNet 是一个基于比特币加密技术和 BT 网络技术的去中心化的、开放开源的网络和交流系统。

    1 引用 • 21 回帖 • 637 关注
  • golang

    Go 语言是 Google 推出的一种全新的编程语言,可以在不损失应用程序性能的情况下降低代码的复杂性。谷歌首席软件工程师罗布派克(Rob Pike)说:我们之所以开发 Go,是因为过去 10 多年间软件开发的难度令人沮丧。Go 是谷歌 2009 发布的第二款编程语言。

    497 引用 • 1387 回帖 • 285 关注
  • DevOps

    DevOps(Development 和 Operations 的组合词)是一组过程、方法与系统的统称,用于促进开发(应用程序/软件工程)、技术运营和质量保障(QA)部门之间的沟通、协作与整合。

    47 引用 • 25 回帖 • 2 关注
  • BookxNote

    BookxNote 是一款全新的电子书学习工具,助力您的学习与思考,让您的大脑更高效的记忆。

    笔记整理交给我,一心只读圣贤书。

    1 引用 • 1 回帖
  • 爬虫

    网络爬虫(Spider、Crawler),是一种按照一定的规则,自动地抓取万维网信息的程序。

    106 引用 • 275 回帖
  • HBase

    HBase 是一个分布式的、面向列的开源数据库,该技术来源于 Fay Chang 所撰写的 Google 论文 “Bigtable:一个结构化数据的分布式存储系统”。就像 Bigtable 利用了 Google 文件系统所提供的分布式数据存储一样,HBase 在 Hadoop 之上提供了类似于 Bigtable 的能力。

    17 引用 • 6 回帖 • 74 关注
  • 书籍

    宋真宗赵恒曾经说过:“书中自有黄金屋,书中自有颜如玉。”

    77 引用 • 390 回帖
  • ReactiveX

    ReactiveX 是一个专注于异步编程与控制可观察数据(或者事件)流的 API。它组合了观察者模式,迭代器模式和函数式编程的优秀思想。

    1 引用 • 2 回帖 • 156 关注
  • Love2D

    Love2D 是一个开源的, 跨平台的 2D 游戏引擎。使用纯 Lua 脚本来进行游戏开发。目前支持的平台有 Windows, Mac OS X, Linux, Android 和 iOS。

    14 引用 • 53 回帖 • 531 关注
  • Linux

    Linux 是一套免费使用和自由传播的类 Unix 操作系统,是一个基于 POSIX 和 Unix 的多用户、多任务、支持多线程和多 CPU 的操作系统。它能运行主要的 Unix 工具软件、应用程序和网络协议,并支持 32 位和 64 位硬件。Linux 继承了 Unix 以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。

    943 引用 • 943 回帖
  • Pipe

    Pipe 是一款小而美的开源博客平台。Pipe 有着非常活跃的社区,可将文章作为帖子推送到社区,来自社区的回帖将作为博客评论进行联动(具体细节请浏览 B3log 构思 - 分布式社区网络)。

    这是一种全新的网络社区体验,让热爱记录和分享的你不再感到孤单!

    132 引用 • 1114 回帖 • 125 关注
  • FFmpeg

    FFmpeg 是一套可以用来记录、转换数字音频、视频,并能将其转化为流的开源计算机程序。

    23 引用 • 32 回帖
  • wolai

    我来 wolai:不仅仅是未来的云端笔记!

    2 引用 • 14 回帖
  • JetBrains

    JetBrains 是一家捷克的软件开发公司,该公司位于捷克的布拉格,并在俄国的圣彼得堡及美国麻州波士顿都设有办公室,该公司最为人所熟知的产品是 Java 编程语言开发撰写时所用的集成开发环境:IntelliJ IDEA

    18 引用 • 54 回帖 • 2 关注
  • SEO

    发布对别人有帮助的原创内容是最好的 SEO 方式。

    35 引用 • 200 回帖 • 22 关注
  • 职场

    找到自己的位置,萌新烦恼少。

    127 引用 • 1705 回帖
  • Sphinx

    Sphinx 是一个基于 SQL 的全文检索引擎,可以结合 MySQL、PostgreSQL 做全文搜索,它可以提供比数据库本身更专业的搜索功能,使得应用程序更容易实现专业化的全文检索。

    1 引用 • 211 关注