RN开发遇到的问题总结(iOS和android端)
react-native run-ios 报错如下:
Could not find iPhone 6 simulator
解决方案:找到node_modules/react-native/local-cli/runIOS/findMatchingSimulator.js
修改
if(version.indexOf('iOS') !==0&& !version.includes('iOS')) {
continue;
}
Print: Entry, “:CFBundleIdentifier”, Does Not Exist
Open Project in Xcode
If Xcode > 9 run command react-native upgrade (this overwrites all your iOS configurations, use with caution!)
[iOS部分一路y即可] then
1.Go to File -> Project settings
2.Click the Advanced button
3.Select "Custom" and select "Relative to Workspace" in the pull down
4.Change "Build/Products" to "build/Build/Products"
5.click done, done
glog 'config.h' file not found
终端进入node_modules文件夹所在目录,输入下列命令行,
cd node_modules/react-native/third-party/glog-0.3.4
../../scripts/ios-configure-glog.sh
npm install,报错如下:
npm ERR! code ENOLOCAL
npm ERR! Could not install from "node_modules/teaset/react-native-deprecated-custom-components@github:facebookarchive/react-native-custom-components#d5201e53221a2460b096ee82ff4480f3b0de7fe4" as it does not contain a package.json file.
npm ERR! A complete log of this run can be found in:
npm ERR! /Users/zj/.npm/_logs/2019-08-09T06_13_40_795Z-debug.log
解决方法:将package-lock删除,重新npm-install即可
Could not find iPhone 6 simulatorCould not find iPhone 6 simulator
Print: Entry, “:CFBundleIdentifier”, Does Not Exist
android篇
mac os使用genymotion配置:https://blog.csdn.net/bear_wr/article/details/51184574
1、Mac配置android环境变量,确认配置好了,还是提示没有配置。
解决方案:https://www.jianshu.com/p/9c3c338bff3e
可能是android/gradlew的权限不够。第一步,在RN项目目录下执行chmod 755 android/gradlew,再执行react-native run-android试试,应该没问题了。
2、adb devices命令 找不到adb列表,是因为没有配置Andrid SDK,配置一下即可如果不知道自己的SDK存在那个目录可以在Studio中查看(File->Other Settings->Default Project Structure...)
genymotion为例:
3、 mac os x环境,ADB server didn't ACK
报错如下:
使用adb时,若出上面的错,使用adb kill-server是没有用的,因为此时是其他进程的监听了abd端口(5037),而不是adb。
解决方法:
Mac-mini:platform-tools caijx$ lsof -P | grep ':5037' | awk '{print $2}' | xargs kill -9
Mac-mini:platform-tools caijx$ sudo lsof -i :5037
Mac-mini:platform-tools caijx$ ./adb start-server
* daemon not running. starting it now on port 5037 *
* daemon started successfully *
参考链接:https://blog.csdn.net/happyrabbit456/article/details/38663951
4、问题截图,路径错误
这个是路径不对造成、最终发现是同目录下必须加:./
5、RN的安卓原生代码引入第三方库的时候出现的问题,第三方库中出现错误如下
程序包android.support.v4.view找不到(大坑)
从网上搜了一堆结果,结果都是add Libiray即可:
但是我这里始终一直显示找不到,原因是现在9.0版本后已经是androidX时代,android.support.v4已经过时了,使用新的import方式才可以androidx.core
6、ScrollView/SectionList中嵌套带有Tab切换的FlatList时遇到的高度不更新问题?
在网上找了N中解决方式、最终都没能解决~
我自己试了下用比较笨的方法去暂时解决了该问题:(有更好的办法,请指点)
我这里先给底部一个默认高度listFooterHeight=50
下面就是我的列表和解决方式了:
通过FlatList内部自己计算的高度改变,再次强制刷新即可,更新当前整个ScrollView的高度