IOS工程运行时报错:Cannot read property 'error' of null



  • 项目运行时报错崩溃,报错信息:2016-01-12 10:55:20.014 [error][tid:main] TransformError: /Users/zhouzhongguang/AwesomeProject/node_modules/react-native/node_modules/react-transform-hmr/node_modules/react-proxy/node_modules/react-deep-force-update/lib/index.js: Cannot read property 'error' of null


  • administrators

    @周中广 说:

    react-deep-force-update

    删掉react-deep-force-update目录下的.babelrc文件



  • @sunnylqm 和楼主一模一样的问题。在react-deep-force-update目录下 并没有发现.babelrc的文件,另外,在xcode控制台中 还发现了这样的报错信息
    [tid:com.facebook.React.JavaScript][RCTJSCProfiler.m:63] JSC profiler is not supported.
    不支持JSC解析???

    [error][tid:main] TransformError: /Users/wuxiaochen/ReactNative/HelloWorld/node_modules/react-native/node_modules/react-transform-hmr/node_modules/react-proxy/node_modules/react-deep-force-update/lib/index.js: Cannot read property 'error' of null



  • 我的Xcode是7.2版本 react native 是0.18.0~rc


  • administrators

    那就按这里的步骤回退到0.17吧 http://reactnative.cn/docs/upgrading.html#content
    先指定版本npm install ,再react-native upgrade



  • @sunnylqm 果然,回退到0.17 就可以正常运行了。:+1: :+1: :+1: :+1: :+1: ,话说 这难道还是0.18里的一个Bug么


  • administrators

    @loveninteb 是的,官方发布新版本时都没有在windows下测试



  • 我记得这个问题在mac下也一样…… 只要是0.18-rc就有,mac下.babelrc默认隐藏了,可能需要命令行删除或者显示隐藏文件才能删除。



  • @tdzl2003 删除了这个文件,问题貌似也没有解决



  • 此回复已被删除!

  • administrators

    @dbdou 估计是删完后没有清除packager的缓存再重启packager



  • @sunnylqm packager的缓存清空有没有命令



  • @sunnylqm 按照回复删除了文件.babelrc,不行又回退了版本,还是报错,不过错误内容变了:Connection to localhost port 8081 [tcp/sunproxyadmin] succeeded!
    Port 8081 already in use, packager is either not running or not running correctly
    :sweat:


  • administrators

    @周中广 你是不是全程没关packager?



  • @sunnylqm packager?没注意到


  • administrators

    @周中广 有个终端窗口,标题写着react packager,是rn的服务端



  • @sunnylqm 应该是工程编译阶段直接就报错了,没有终端窗口



  • @sunnylqm 加个QQ聊吧!1137138434,这里说不清楚


  • administrators

    @周中广 即便是编译报错,终端窗口也会弹出来



  • @sunnylqm 说:终端确实没有启动
    0_1453089527455_屏幕快照 2016-01-18 上午11.58.38.png


  • administrators

    @周中广 这里有个already in use,意思是8081端口已经被占了,我猜是你之前的packager没有关,如果不是的话,那就是有别的服务占了8081端口。有问题,可以看求助区的置顶帖,里面有三个qq群,我不定时在里面回答问题。


登录后回复