最近去了一家公司,采用的是React Native开发App。公司是在windows环境下开发的,环境也有人配好了。自己回家准备在linux下搞开发,装环境才知道坑一大堆。下面是我遇到的一系列问题:
1.react-native run-android throw new TypeError(‘invalid data’); TypeError: invalid data at WriteStream.Socket.write (net.js:617:11)
这个错误是由于linux文件权限问题造成的(windows没报这个错),主要是一个文件没有执行权限,命令:
chmod +x node_modules/react-native/local-cli/setup_env.sh
执行命令时注意路径是否正确。
附上这个问题在github的地址:
https://github.com/facebook/react-native/issues/6074
2.android/gradlew 执行权限
上一步完成后,运行react-native run-android,发现并没有开始编译运行,反而直接报错:>Could not install the app on the device, read the error above for details.
Make sure you have an Android emulator running or a device connected and have>
set up your Android development environment:
https://facebook.github.io/react-native/docs/android-setup.html
这个错误很扯淡,我第一反应是检查设备是否在线
adb devices
设备正常(注意授权),我就奇怪了,命令里有提示cd android && ./gradlew installDebug。然后我就cd到android目录下,检查了一下gradlew文件,没有执行权限,chmod +x gradlew 即可 ,再次运行react-native run-android,开始正常编译。
3.Could not resolve all dependencies for configuration ‘:app:_debugApk’
最大的坑,没有之一,问题很复杂,只要settings.gradle 、build.gradle文件不出错,一般情况是缺少android support respository,用android sdk manager下载就行。关键步骤来了,如果下载好了依然编译失败,最好把项目清理一下。我就是下载之后,一直报这个错:
A problem occurred configuring project ‘:app’.
Could not resolve all dependencies for configuration ‘:app:_debugApk’.
Configuration with name ‘default’ not found.
为了解决这个错,我花了好大功夫,依然失败了。后面,我想会不会是因为之前编译失败的文件一直在影响呢。于是我把项目删掉,重新解压,没想到直接编译成功。
4.有时会报SDK路径错误,或者找不到SDK
我是配置在android/app 目录下的local.properties文件里配置的
sdk.dir = sdk的路径