【问题标题】: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)也出现错误。

有什么错误?
谢谢!

【问题讨论】:

    标签: react-native


    【解决方案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 ,但同样的错误。
      猜你喜欢
      • 1970-01-01
      • 2017-11-27
      • 2017-05-26
      • 2017-06-27
      • 2016-06-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多