我正在使用使用许多软件包的React Native应用程序。自从将React Native升级到0.58后,构建过程在Android上崩溃,并出现错误:找不到符号。
我发现问题在于许多第3部分软件包(例如react-native-svg)在build.gradle中都具有这样的语句:
dependencies {
implementation 'com.facebook.react:react-native:+'
}
如果我将+更改为我正在使用的特定React Native版本,它会起作用:
dependencies {
implementation 'com.facebook.react:react-native:0.58.0'
}
但这不是可管理的,因为这些文件位于.gitignore:d的node_modules中。例如,这意味着我每次进行npm安装时都必须更改所有这些gradle文件。在“实现”中使用+时,为什么它不起作用?
答案 0 :(得分:0)
您可以使用以下命令来更改所有版本的依赖性。
sed -i -- "s/com\.facebook\.react:react-native:+/com\.facebook\.react:react-native:0.58.0/" node_modules/**/android/build.gradle
sed -i -- "s/com\.facebook\.react:react-native:+/com\.facebook\.react:react-native:0.58.0/" node_modules/**/android/app/build.gradle
sed -i -- "s/com\.facebook\.react:react-native:+/com\.facebook\.react:react-native:0.58.0/" android/app/build.gradle
在“执行”中使用+的无效点似乎是未修改Android上的.gradle,或模块引用了较旧版本的节点模块文件。