这个问题已经得到解决,参照stackoverflow上的问题:https://stackoverflow.com/que...
这个问题的原因就处在Android工程中app/build.gradle
中,build.gradle
中对于 react-native库的版本的配置默认是这么写的:
compile 'com.facebook.react:react-native:+'
这个最后面的 “+” 表示的是使用最新的版本号。
也就是说,我们Android工程中,依赖的React native 的native代码版本号是使用网络上发布的最新版本。
这也是我们这个问题产生的根本原因。
按照上面链接中的问题的回答,进行如下修改:
compile ('com.facebook.react:react-native:0.54.3') { force = true }
再执行 react-native run-android
,一切恢复正常。真是个大坑,耽误了自己一上午的时间。
补充:
报这个错误还有一种情况,那就是我们先用react-native run-android
运行了其他的不同RN版本的工程,这个时候,如果我们不关闭其他运行中的RN工程的调试进程就在我们想要启动的工程下面运行react-native run-android
命令的话,也会在安装的 app中报这个错误,也就是对应 stack overflow 链接中的票数最多的回答。
总结一下:
产生这个错误可能有两种情况:
第一种情况,也是比较常见的情况是:有其他不同RN版本号的工程以开发模式运行,这时如果我们以 react-native run-android
运行我们自己想要调试的工程的话,会报这个错误。
第二种情况,可能相比第一种情况不常见,原因在于可能在我们的开发周期内,RN的Native版本库不一定会更新。第二种情况就是,我们在Android工程中配置的RN库版本与 JS工程中配置的RN库版本不一致。这种情况下只需将 android/app/build.gradle
下的RN库默认配置改为:
compile ('com.facebook.react:react-native:0.54.3') { force = true } // 0.54.3 处变为自己的JS工程中的相应版本号
问题即可解决。