前言:
N年前的老项目重启,在打包的时候报错。
报错信息:
打包命令:gradlew assembleRelease
分析:
是因为RN-com.google.android.gms:play-services-gcm依赖包冲突或者不兼容的BUG。package.json
中react-native-device-info
的版本号是固定的,在yarn
的过程中,react-native-device-info
还是原先的版本,不存在更新的情况,可能是谷歌中的react-native-device-info
依赖更新了,查看react-native-device-info依赖版本,所以更新后的谷歌依赖和项目中的build.gradle版本不兼容。
package.json
中插件的版本如下:
"react": "16.0.0-alpha.6",
"react-native": "0.44.0",
"react-native-device-info": "^0.10.2",
react-native-device-info
的build.gradle
文件:
dependencies {
compile 'com.facebook.react:react-native:+'
compile 'com.google.android.gms:play-services-gcm:+'
}
项目中的build.gradle
文件:
解决方法:
方法1:修改react-native-device-info
的build.gradle
中插件的版本:
compile 'com.google.android.gms:play-services-gcm:15.0.1'
其他: 引入第三方库:
命令:npm install [第三方库] --save
,如:npm install react-native-device-info --save
命令执行完成之后,在文件package.json中会有引入的项目。在node_modules文件夹中会有引用的组件的文件夹,如例子中的 react-native-device-info文件夹。
我在运行这个命令的时候,报了一堆警告和错误,我是采用粗暴的方法,直接把项目下的node_modules文件夹删除,再在项目目录下运行yarn install命令。