React Native 签名打包出现Error: Duplicate resources的解决方法
自己捣鼓了一个react native的项目,准备打包放到手机上试一下的时候,却出现Error: Duplicate resources这个问题,看了一下报错的地方全是android\app\src\main\res\drawable-*下面的图片格式有问题
然后发现网上有两个解决方法(参考博客:https://blog.csdn.net/tianshanaoxue/article/details/81133645 和 https://blog.csdn.net/hejun041/article/details/78603481?locationNum=9&fps=1 )
方法一:删除android\app\src\main\res\drawable-*下面的所有图片,然后执行gradlew assembleRelease;
方法二:修改node_modules\react-native\react,gradle文件,我是直接把https://github.com/facebook/react-native/blob/2d9e2f30e17b8e79f2c44ef533ecdd550671304c/react.gradle拿来替换掉的
经过测试,两个方法都能够生成app-release.apk,但是发现一个问题,就是通过方法二替换react.gradle生成的apk,安装到手机上会闪退。
原因是由于react-native库的问题,在使用debug的时候,TextInput.propTypes.style和View.propTypes.style是能够正常提供的,但是在release版本中,不能够正常提供从而导致打包bundle.js的时候出错,这也就是当我们使用命令进行打包bundle.js的时候,采用–dev true的模式能够正常运行的原因。
解决方法是在发布版本的时候删掉代码中的propsType校验TextInput.propTypes.style和View.propTypes.style或者直接就不用(参考博客:https://blog.csdn.net/suwu150/article/details/81079093 )