升级到React-native 0.56之后(使用react-native-git-upgrade,并将babel-preset-react-native升级到5.0.2),
react-native run-ios工作正常,应用运行正常。
但是当运行react-native run-android时,会发生错误:
/ Users / shouhuasun / dev / stage / upgrade-test / mobile-upgrade-test / node_modules / react-native-wechat / android / build / intermediates / res / merged / release / values-v24 / values-v24。 xml:3:AAPT:检索项目的父项时出错:找不到与给定名称“ android:TextAppearance.Material.Widget.Button.Borderless.Colored”匹配的资源。
未找到其他名称,例如:“ TextAppearance.Material.Widget.Button.Colored,android:keyboardNavigationCluster”等。
其他类似react-native-fetch-blob的库也出现了错误。
怎么了?
谢谢!
答案 0 :(得分:1)
我找到了解决方案(感谢Facebook React-Native Community Q&A上的Reynald Liandra):
react-native-wechat(与其他第三库相同)android模块需要在更新到rn v0.56之后使用sdk 26进行编译。
打开node_modules / react-native-wechat / android / build.gradle,
将compileSdkVersion更改为26,并将buildToolsVersion更改为26.0.3
然后运行react-native run-android并获得正确的结果。
如果有多个第三个库,则更改多个build.gradle文件很麻烦。
并且,如果更新任何库版本(或用yarn添加新库),则将刷新node_moudle,并且build.gradle中的所有更改都将丢失。
您可以通过此命令强制gradle使用指定的sdk版本(不再修改node_modules中的build.gradle):
gradle force build tools version on third party libraries
答案 1 :(得分:0)
确保您的npm版本高于8.0