react native 开发踩到的坑(持续更新)

react native 开发踩到的坑(持续更新)

1、 com.android.ddmlib.InstallException: Unable to upload some APKs解决方案:

解决方案来源地址:https://github.com/Kennytian/learning-react-native/blob/master/environment/react_native_pit.md

魅族 Meizu m2 note / 魅族 Meizu MX4 / 华为 Huawei Mate 7 / 华为 Huawei P8 / 小米 Redmi Note 2 / 乐视 Letv X500 无法安装以上手机安装apk时, 可能会报一个 com.android.ddmlib.InstallException: Unable to upload some APKs, 我们需要修改如下几个位置:

(1)、需要将 android/build.gradle 里的 gradle:1.3.1 改为 gradle:1.2.3
(2)、需要将 android/gradle/wrapper/gradle-wrapper.properties里的 distributionUrl 版本改为gradle-2.2-all.zip

其实我发现不用改这些,直接用android studio ,是可以直接安装到真机上面的。

2 出现com.android.builder.testing.api.DeviceException: Timeout getting device list.

解决方案:
首先使用adb devices,查看连接设备情况

adb devices

然后控制台出现error: cannot parse version string: kg01 错误
此时使用adb kill-server命令

adb kill-server

然后再使用adb devices 则发现系统能够查看到连接的设备了。

3 输入adb reverse tcp:8081 tcp:8081 发现adb没有reverse这个命令

解决方案:
unplug device
adb kill-server
adb version
Android Debug Bridge version 1.0.29
cd to android sdk dir
cd /home/XXX/adt-bundle-linux-x86_64/sdk/platform-tools/
copy new adb to /usr/bin
sudo cp adb /usr/bin/
adb version
Android Debug Bridge version 1.0.31
adb kill-server
adb devices
daemon not running. starting it now on port 5037 *
daemon started successfully * List of devices attached
plug in the device, and on the device dialog about RSA appeared
accept on device
adb devices
List of devices attached
04cefca0e29085aa device

今天重做react-native环境。发现adb命令使用不了,就鬼使神差的使用了apt-get install adb 。这下可好,adb是可以用了,但是adb reverse死活用不了。猜测应该是adb 版本太低,低版本的adb还没有reverse这个命令。因此根据上面的外国大神哥哥的方案,其实也就是那几个步奏:
1、找到sdk下的platform-tools 下面的adb
2、将这个adb 覆盖usr/bin 下面的那个adb
OK,现在你的adb就是高点的版本了。

4 watch ENOSPC

在启动react-native start 后,过几秒就会出现watch * * * * * * * * * * *ENOSPC 这个问题
解决方案:
echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf && sudo sysctl -p
或重启电脑

5 Multiple dex files define

报错信息:com.android.dex.DexException: Multiple dex files define Lorg/videolan/libvlc/LibVLC$OnNativeCrashListener;
其实这个问题不是react-native框架的问题了。这个是android工程里面重复引用包造成的。
出现这个问题,是集成react-native-vlc-player 开源组件的时候出现的。需求是要做一个视频组件,负责写android原生UI的同学不懂react-native,而本人之前也没有做过andriod开发,因此决定找个开源的native-react 视频播放组件。由于之前那位同学给了些后台代码,里面用到了vlc的包,然后再引入react-native-vlc-player 就造成多个包的重复引用。删除了那位同学给的后台代码发现这个问题依然存在。最后在几乎要放弃的情况下,发现了工程目录/android/app/build/intermediates下面有一堆的东西,然后就把他全部全部干掉,再运行依次react-native run-android 嘿嘿 竟然编译过了。。。。
其实这个问题真正的核心在于重复引入包,如果出现这个问题的道友,可以从以下几方面入手:
1、检查是否是因为引入的包重复了;
2、检查依赖关系是否重复了;
3、最后不行删除build下面的东西,在编译一次。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值