React Native 经常遇见的一个错误:
在解决这个问题的过程中会发现很多奇葩的问题,明明操作正确,却仍然报错,特别是Android端,但我们也只能老老实实的按步骤的和它干,佛性的对它,以下是我的解决路线:
1,Close all terminals and run build again.关闭命令行服务,重建项目;
2,按照画面中提示的运行命令:watchman watch-del-all && react-native start --reset-cache;
3,clean 工程,再次运行项目,应该OK;此时Android端可能继续报错,检查android/app/build.gradle 下的RN库默认配置从
compile 'com.facebook.react:react-native:+'
改为:
compile ('com.facebook.react:react-native:0.54.4') { force = true } // 0.54.4 处变为自己的JS工程package.json中的react-native相应版本号,
然后关闭服务,clean工程,再次run即可解决;
错误分析:
第一种情况是有其他不同RN版本号的工程以开发模式运行,这时如果我们以 react-native run-xx 运行我们自己想要调试的工程的话,会报这个错误。这种情况直直接关闭其他运行 RN 工程的命令行窗口,这这个冲突问题就解决了;
第二种情况就是我们在Android/iOS工程中配置的RN库版本与 JS工程中配置的RN库版本不一致时会出现这个问题。这种情况下,Android工程只需将 android/app/build.gradle 下的RN库默认配置修改为正确的即可;在 Android gradle 中默认是没有明确配置版本号,而是用 '+' 来指定 react-native在 Android 端的 native 版本,'+' 的意思是,采用该库的最新版本。当我们建立工程的时候,自然是没有问题的,因为我们在用命令来建立工程时一般都是默认采用建立工程时的最新的RN的版本。在配置文件中这么写自然没毛病,但是如果我们的开发周期很长,那么这样的配置就可能会出现版本不匹配的问题。