升级到RN 0.56时出现错误:找不到与给定名称'android:TextAppearance.Material.Widget.Button.Borderless.Colored'匹配的资源

时间:2018-07-17 08:35:26

标签: react-native

升级到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的库也出现了错误。

怎么了?
谢谢!

2 个答案:

答案 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