美文网首页
RN开发遇到的问题总结(iOS和android端)

RN开发遇到的问题总结(iOS和android端)

作者: 与世倾听X游定终生 | 来源:发表于2019-08-09 14:27 被阅读0次

    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的高度

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

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

    相关文章

      网友评论

          本文标题:RN开发遇到的问题总结(iOS和android端)

          本文链接:https://www.haomeiwen.com/subject/iaqhjctx.html