REACT-NATIVE小白日记(一)

271 阅读4分钟

开篇

果然到了9102年年底我还是没躲过RN的学习。不知道学习过程到底会怎么样,但是9年义务教育告诉我这个事情没有那么简单。今天是我正式学习的第一天,其实昨天我已经把环境安装完了(事实上,我并不确定环境是否真的安装成功)。写这个的意思很简单,就是给自己留一个学习过程的日记,防止以后再新建RN项目的时候还需要重新怕坑。

关于项目

目前项目要实现的是一个集新闻、办公的APP,办公需要实现类似微信小程序的功能,用户可以自由选择,办公不安装在用户手机中。那么APP更像一个平台(可能类似一个小的浏览器,但是只能浏览指定的URL)。目前想通过webview来实现这个功能,如果又大佬路过,可以给我留言,教教我如何做一个这样的功能,或者给我留一点思路。

环境安装

环境安装真的很顺利,让我误以为我只需要专注技术学习和大神进阶之路。 环境有这几种:

  1. NODE 要求10+
  2. javaJDK1.8,网上说目前仅支持这个JDK版本,请注意时间,以后不知道是不是还会这样,此时是2019年10月22日)。javaJDKPATHCLASSPATH等环境变量需要配置,百度喽,很多很多。
  3. python (仅支持2.X 版本,也请注意时间)python安装时,安装界面的第一页选择“自动添加至环境变量”
  4. yarn RN不能使用cnpm,原因还是百度吧,大致是因为cnpm安装后RN的什么什么不能正常解析(“什么什么”是小白的术语?手动滑稽)。
  5. ANDROID STUDIO 安卓开发工具(我目前开发的是安卓,IOS的如果我还坚持后面一定会有,希望会有),这个安装的时候需要选择的还是比较多的,RN中文手册上有详细的安装条目,请一定按照要求下载安装。
  6. react-native-cli 这个就是主角

环境的安装这个步骤呢,就是麻烦的很,但是还没有什么坑,如果有坑的话,就是ANDROID STUDIO安装安卓模拟器的时候,需要修改BIOSCPU设置,不过我觉得这是电脑的坑,还得现查电脑型号怎么进BIOS。当然完全可以不用官方模拟器。

初始化新项目HELLO,WORLD

好吧,好吧,是我太天真了。直到现在10点半,我初始化项目之后仍然没有成功启动项目。就连网上说如果配置错误出现的红屏我都没见过。RN中文手册说必须要翻墙,可是违法的事情我不敢做呀。

出现的错误是各种JAR包找不到,果然中文手册上说的是真的,现在我还依然没有翻墙(实话是有点不敢,也没找到好的工具。)

说一下我尝试过的几种方法(每个人可能情况不一样,如果你毫无头绪,不如都试试):

  1. 修改android下build.gradle文件内容
buildscript {
    ...
    repositories {
        google();
        jcenter();
    }
   ...
}

...

allprojects {
    repositories {
        google()
        jcenter()
    }
}

修改成

buildscript {
    ...
    repositories {
        ...
        //google();
        //jcenter();
        maven { url 'https://maven.aliyun.com/repository/google' }
        maven { url 'https://maven.aliyun.com/repository/jcenter' }
        maven { url 'http://maven.aliyun.com/nexus/content/groups/public' }
    }
   ...
}

...

allprojects {
    repositories {
        ...
        // google()
        // jcenter()
        maven { url 'https://jitpack.io' }
        maven { url 'https://maven.aliyun.com/repository/google' }
        maven { url 'https://maven.aliyun.com/repository/jcenter' }
        maven { url 'http://maven.aliyun.com/nexus/content/groups/public' }
    }
}
  1. ANDROID STUDIO中多余的SDKTOOLS删除,仅留下28.0.3和28相关的。

  2. 安装C:\Users\***\AppData\Local\Android\Sdk\extras\intel\Hardware_Accelerated_Execution_Manager目录下的intelhaxm-android.exe

  3. 修改 android > app > build.gradle

android {
    ...
    defaultConfig {
        ...
        //新增如下代码
        packagingOptions {
            exclude 'lib/arm64-v8a/libgnustl_shared.so'
            exclude 'lib/armeabi-v7a/libgnustl_shared.so'
        }
    }
}

5.新建了一个Pixel模拟器,然后竟然成功了,目前还不知道是不是因为模拟器配置的原因导致启动失败,之后会测试将原来修改的地方还原,不论如何,项目启动了,所以终于可以开始下一步了。 (我尝试还原了一下,然后项目启不起来了。后来百度翻译了一下,是模拟器上版本高于启动版本。我也没做其他的东西,然后又研究模拟器,这个模拟器每次打开就停在APP的页面,看不见桌面,也不能退出。后来关了好几次终于看见桌面和APP图标了,然后APP删除了,终于又成功了,我觉得我现在不应该研究他为什么好使,为什么又不好使。我先尝试开发吧)。

第一步结束了

今天把项目停了又启了好几次之后,我想应该可以进入开发过程了。项目中肯定会使用到如下:

  1. 路由
  2. redux
  3. fetch

后续会继续记录每天开发遇到的问题,有的能解决,有的不能解决,如果有哪位大佬看见了我没有解决的问题,还请指教,还请指教,还请指教,百度实在太费劲了。今天先这样吧,我去看中文文档了,同学们,明天见。