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为例:

RN开发遇到的问题总结(iOS和android端)_第1张图片


3、 mac os x环境,ADB server didn't ACK

报错如下:


RN开发遇到的问题总结(iOS和android端)_第2张图片

使用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、问题截图,路径错误

RN开发遇到的问题总结(iOS和android端)_第3张图片

这个是路径不对造成、最终发现是同目录下必须加:./


5、RN的安卓原生代码引入第三方库的时候出现的问题,第三方库中出现错误如下

程序包android.support.v4.view找不到(大坑)

从网上搜了一堆结果,结果都是add Libiray即可:

但是我这里始终一直显示找不到,原因是现在9.0版本后已经是androidX时代,android.support.v4已经过时了,使用新的import方式才可以androidx.core


6、ScrollView/SectionList中嵌套带有Tab切换的FlatList时遇到的高度不更新问题?

在网上找了N中解决方式、最终都没能解决~

我自己试了下用比较笨的方法去暂时解决了该问题:(有更好的办法,请指点)


RN开发遇到的问题总结(iOS和android端)_第4张图片

我这里先给底部一个默认高度listFooterHeight=50

RN开发遇到的问题总结(iOS和android端)_第5张图片

下面就是我的列表和解决方式了:


RN开发遇到的问题总结(iOS和android端)_第6张图片

通过FlatList内部自己计算的高度改变,再次强制刷新即可,更新当前整个ScrollView的高度

RN开发遇到的问题总结(iOS和android端)_第7张图片

7、Gradle sync failed: Already disposed: Module: '***'的一种解决方案


参考链接: https://blog.csdn.net/xjz696/article/details/90409064

RN开发遇到的问题总结(iOS和android端)_第8张图片

你可能感兴趣的:(RN开发遇到的问题总结(iOS和android端))