开篇
果然到了9102年年底我还是没躲过RN的学习。不知道学习过程到底会怎么样,但是9年义务教育告诉我这个事情没有那么简单。今天是我正式学习的第一天,其实昨天我已经把环境安装完了(事实上,我并不确定环境是否真的安装成功)。写这个的意思很简单,就是给自己留一个学习过程的日记,防止以后再新建RN项目的时候还需要重新怕坑。
关于项目
目前项目要实现的是一个集新闻、办公的APP,办公需要实现类似微信小程序的功能,用户可以自由选择,办公不安装在用户手机中。那么APP更像一个平台(可能类似一个小的浏览器,但是只能浏览指定的URL)。目前想通过webview来实现这个功能,如果又大佬路过,可以给我留言,教教我如何做一个这样的功能,或者给我留一点思路。
环境安装
环境安装真的很顺利,让我误以为我只需要专注技术学习和大神进阶之路。 环境有这几种:
NODE要求10+java(JDK1.8,网上说目前仅支持这个JDK版本,请注意时间,以后不知道是不是还会这样,此时是2019年10月22日)。java、JDK、PATH、CLASSPATH等环境变量需要配置,百度喽,很多很多。python(仅支持2.X版本,也请注意时间)python安装时,安装界面的第一页选择“自动添加至环境变量”yarnRN不能使用cnpm,原因还是百度吧,大致是因为cnpm安装后RN的什么什么不能正常解析(“什么什么”是小白的术语?手动滑稽)。ANDROID STUDIO安卓开发工具(我目前开发的是安卓,IOS的如果我还坚持后面一定会有,希望会有),这个安装的时候需要选择的还是比较多的,RN中文手册上有详细的安装条目,请一定按照要求下载安装。react-native-cli这个就是主角
环境的安装这个步骤呢,就是麻烦的很,但是还没有什么坑,如果有坑的话,就是ANDROID STUDIO安装安卓模拟器的时候,需要修改BIOS的CPU设置,不过我觉得这是电脑的坑,还得现查电脑型号怎么进BIOS。当然完全可以不用官方模拟器。
初始化新项目HELLO,WORLD
好吧,好吧,是我太天真了。直到现在10点半,我初始化项目之后仍然没有成功启动项目。就连网上说如果配置错误出现的红屏我都没见过。RN中文手册说必须要翻墙,可是违法的事情我不敢做呀。
出现的错误是各种
JAR包找不到,果然中文手册上说的是真的,现在我还依然没有翻墙(实话是有点不敢,也没找到好的工具。)
说一下我尝试过的几种方法(每个人可能情况不一样,如果你毫无头绪,不如都试试):
- 修改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' }
}
}
-
ANDROID STUDIO中多余的SDK和TOOLS删除,仅留下28.0.3和28相关的。 -
安装
C:\Users\***\AppData\Local\Android\Sdk\extras\intel\Hardware_Accelerated_Execution_Manager目录下的intelhaxm-android.exe -
修改 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删除了,终于又成功了,我觉得我现在不应该研究他为什么好使,为什么又不好使。我先尝试开发吧)。
第一步结束了
今天把项目停了又启了好几次之后,我想应该可以进入开发过程了。项目中肯定会使用到如下:
- 路由
- redux
- fetch
后续会继续记录每天开发遇到的问题,有的能解决,有的不能解决,如果有哪位大佬看见了我没有解决的问题,还请指教,还请指教,还请指教,百度实在太费劲了。今天先这样吧,我去看中文文档了,同学们,明天见。