第一次正式使用ubuntu开发,react-native也是helloworld阶段,结果就是连最简单的react-native init helloworld, react-native run-android 都跑不起来。把错误现象粘贴到网上,各种答案五花八门,由于缺乏基本概念,实在是费了不少功夫时间。
错误现象我也没保留,不过大致原因都知道了。以后遇到同样问题,直接搜关键词就能找到办法了。
1. 首先,react-native init helloworld不能运行。
我这边已经没有错误现象,懒得重现,简单描述下几种现象和原因:
1.1 语法错误,...符号不识别。
解决办法:升级nodejs。
显而易见,es6语法不能识别。语法的解析大概是需要nodejs吧,当时走了不少弯路,总的来说,把nodejs升级到最新版本就好了。
nodejs -version
这条命令可以查看当前版本。我那时还改了环境变量,结果不知怎的,虽然nodejs升级成功,但react-native依然只能识别旧的版本,绕了大圈……
1.2 还有吗?忘了……
2. react-native run-android无法正常运行。
解决办法:根据错误提示下载对应的sdk plaforms/build tools;给ubuntu添加32位库支持。
2.1 下载使用Android Studio。虽然SDK自己也有SDK管理器和AVD管理器,不过……还是建议你使用Android Studio来管理吧,官方也是这个建议的。缺什么东西都会自动提示,下载也是一样,根据提示点点点就是了。
2.2 给ubuntu添加32位库支持。
这个解决起来很容易。
sudo apt-get install lib32z1
当初废了不少功夫,是因为拿着错误现象关键词用百度/google搜了半天,一个个五花八门的方法实验过去几乎没一个可以(什么换源啊/依赖修复啊/install各种乱七八糟的东西啊……)。
当然,每个人环境都不同,具体解决办法也许会不同。但如果你遇到什么“缺少lib32依赖”/“依赖XX,但不会安装,因为要保持XX依赖结构不变……”大意如此的东西。
这个时候,你搜关键词“ubuntu XX(版本号) 32位库支持”,一查一个准。
第二天的更新:下载wine依赖时又出现同样的问题了。还是换源吧……一劳永逸。之前用的是163的源,换成阿里的源就可以了。
gksudo gedit /etc/apt/sources.listdeb http://mirrors.aliyun.com/ubuntu/ xenial main restricted universe multiversedeb http://mirrors.aliyun.com/ubuntu/ xenial-security main restricted universe multiversedeb http://mirrors.aliyun.com/ubuntu/ xenial-updates main restricted universe multiversedeb http://mirrors.aliyun.com/ubuntu/ xenial-backports main restricted universe multiverse##测试版源deb http://mirrors.aliyun.com/ubuntu/ xenial-proposed main restricted universe multiverse# 源码deb-src http://mirrors.aliyun.com/ubuntu/ xenial main restricted universe multiversedeb-src http://mirrors.aliyun.com/ubuntu/ xenial-security main restricted universe multiversedeb-src http://mirrors.aliyun.com/ubuntu/ xenial-updates main restricted universe multiversedeb-src http://mirrors.aliyun.com/ubuntu/ xenial-backports main restricted universe multiverse##测试版源deb-src http://mirrors.aliyun.com/ubuntu/ xenial-proposed main restricted universe multiverse# Canonical 合作伙伴和附加deb http://archive.canonical.com/ubuntu/ xenial partner
换源后更新,也许安装wine等还是有问题,这时试下修复依赖
sudo apt-get -f install