monk
monk

Reputation: 163

upgrade to RN 0.56 got error: No resource found that matches the given name 'android:TextAppearance.Material.Widget.Button.Borderless.Colored'

After upgrade to react-native 0.56(using react-native-git-upgrade ,and update babel-preset-react-native to 5.0.2),
react-native run-ios works fine and app run OK.

But when run react-native run-android, error occur:

/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: Error retrieving parent for item: No resource found that matches the given name 'android:TextAppearance.Material.Widget.Button.Borderless.Colored'.

Other names not found such as:'TextAppearance.Material.Widget.Button.Colored,android:keyboardNavigationCluster',etc.

Other libs like react-native-fetch-blob also got the error.

What's the error?
Thanks!

Upvotes: 0

Views: 277

Answers (2)

monk
monk

Reputation: 163

I got the solution(thanks for Reynald Liandra on facebook React-Native Community Q&A):

The react-native-wechat(same other third libs) android module needs to be compiled using sdk 26 after update to rn v0.56.

Open node_modules/react-native-wechat/android/build.gradle ,
change compileSdkVersion to 26, and buildToolsVersion to 26.0.3
Then run react-native run-android and got the correct result.

If there are several third libs , it is noisy to change several build.gradle files.
And if update any libs version (or yarn add new libs),the node_moudle is refreshed and all changes in build.gradle will lost.

you can force gradle use specified sdk version by this(without modify build.gradle in node_modules anymore):
gradle force build tools version on third party libraries

Upvotes: 1

Kosalram Ramakrishnan
Kosalram Ramakrishnan

Reputation: 818

Make sure your npm version is above 8.0

Upvotes: 0

Related Questions