这个问题已经得到解决,参照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工程中的相应版本号

问题即可解决。

posted on 2018-09-29 00:54  大笨鹰  阅读(636)  评论(0编辑  收藏  举报