打包apk的时候,遇到一个很神奇的问题,就是报错说找不到符号
MainApplication.java:6: 错误: 找不到符号import com.facebook.react.ReactNativeHost;
而且连续报了8个错误,后来查阅了很多文档,发现只有英文的帖子里有解决方法,最后拜读了一下,下面为大家解答一下
很明显,这种错误是没有导入相应的包所导致的。所以很大的可能会是包管理工具的配置问题。查看了一下英文的帖子和文档之类的东西,发现一位大神是这么说的,Android文档上说,每个maven仓库链接都应该有自己单独的maven标签。所以下面这种写法是不正确的
maven {
// All of React Native (JS, Obj-C sources, Android binaries) is installed from npm
url "$rootDir/../node_modules/react-native/android"
url 'some new extra repo'
}
而应该写成:
maven {
// All of React Native (JS, Obj-C sources, Android binaries) is installed from npm
url "$rootDir/../node_modules/react-native/android"
}
maven {
url 'some new extra repo'
}
感谢这位大哥的解答,下面贴上链接,是英文的帖子,大家有兴趣可以去看看:
https://www.sogou.com/link?url=hedJjaC291MuovqUW6cN1qs7Ln7z_Hzuc-JLqoyZRNNpFMxUcHLK7J9u6DWTaHQhKblx0XCFjpaML3JnYIMZ_P-9LJ1yTWhAfxcoImtGwAGt5pUc3zy0dg..
对比上面的详解,其实发现我错误的原因,是因为之前导入了阿里云的maven仓库,所以直接注释掉了
maven {
// All of React Native (JS, Obj-C sources, Android binaries) is installed from npm
url "$rootDir/../node_modules/react-native/android"
}
也就直接导致了上面的问题。在打包react native程序时,上面这个仓库地址是一定要保留的,切记。
当然也可能是maven标签里包含了多个maven仓库的链接,拆分出来就好,解决思路参照上文。