升级到react native 0.56后(使用react nativegit升级,并将babel preset react natural更新到5.0.2(,
react naturerun ios运行良好,app运行正常。
但当运行反应原生运行android时,错误发生:
/Users/shouhuasun/dev/stage/upgrade-test/mobile-upgrade-test/node_modules/areact native wechat/android/build/metermediates/res/merged/release/v24/values-v24.xml:3:APT:检索项的父项时出错:找不到与给定名称"android:TextAppearance.Material.Widget.Button.Borderless.Colored"匹配的资源。
未找到其他名称,如:'TextAppearance.Material.Widget.Button.Colored,android:keyboardNavigationCluster'等。
其他库,如react native fetch blob也出现了错误。
错误是什么
谢谢!
我得到了解决方案(感谢Reynald Liandra在脸书上的React Native Community问答(:
react原生微信(与其他第三个libs相同(android模块在更新到rn v0.56后需要使用sdk 26进行编译。
打开node_modules/areact native微信/android/build.gradle,
将compileSdkVersion更改为26,buildToolsVersion更改为26.0.3
然后运行react native-run android,得到正确的结果。
如果有几个第三个库,那么更改几个build.gradle文件会很麻烦
如果更新任何libs版本(或yarn添加新的libs(,node_module将被刷新,build.gradle中的所有更改都将丢失。
您可以通过以下方式强制gradle使用指定的sdk版本(不再修改node_modules中的build.gradle(:
gradle强制第三方库上的构建工具版本
确保您的npm版本高于8.0