升级到 RN 0.56 出现错误:找不到与给定名称匹配的资源 'android:TextAppearance.Material.Widget.Button.Borderless.Colored'
Posted
技术标签:
【中文标题】升级到 RN 0.56 出现错误:找不到与给定名称匹配的资源 \'android:TextAppearance.Material.Widget.Button.Borderless.Colored\'【英文标题】:upgrade to RN 0.56 got error: No resource found that matches the given name 'android:TextAppearance.Material.Widget.Button.Borderless.Colored'升级到 RN 0.56 出现错误:找不到与给定名称匹配的资源 'android:TextAppearance.Material.Widget.Button.Borderless.Colored' 【发布时间】:2018-07-17 08:35:25 【问题描述】:升级到 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)也出现错误。
有什么错误? 谢谢!
【问题讨论】:
【参考方案1】:我得到了解决方案(感谢 Reynald Liandra 在 facebook React-Native 社区问答):
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 文件会很吵。 如果更新任何 libs 版本(或 yarn add new libs),node_moudle 会被刷新并且 build.gradle 中的所有更改都将丢失。
你可以通过这个强制gradle使用指定的sdk版本(不再修改node_modules中的build.gradle):gradle force build tools version on third party libraries
【讨论】:
【参考方案2】:确保你的 npm 版本高于 8.0
【讨论】:
我用纱线。而且还需要npm? 我的node版本是v10.4.1,npm版本是6.1.0。这样可以吗? 我建议你使用8系列的稳定节点版本。因为 React Native 刚刚升级到 node 8 及以上版本。我不确定它们是否支持节点版本 10。 切换到节点 version8.1.13 ,但同样的错误。以上是关于升级到 RN 0.56 出现错误:找不到与给定名称匹配的资源 'android:TextAppearance.Material.Widget.Button.Borderless.Colored'的主要内容,如果未能解决你的问题,请参考以下文章
找不到与给定名称attr“colorPrimary”匹配的资源
错误:找不到与给定名称匹配的资源:Eclipse 中的 attr 'colorAccent'
错误:找不到与给定名称匹配的资源(在“主题”处,值为“@style/Theme.Sherlock”)
离子 - 错误:找不到与给定名称匹配的资源(在“dialogCornerRadius”处,值为“?android:attr/dialogCornerRadius”)