无法检索到父级项目:没有找到与给定名称 'android:TextAppearance.Material.Widget.Button.Colored' 匹配的资源。

14

今天,我遇到了这篇文章中提到的错误: Error retrieving parent for item: No resource found that matches the given name 'android:TextAppearance.Material.Widget.Button.Borderless.Colored'

有趣的是(且不同于以往)- 我们的应用已经上线5个月了,迄今为止我们已经发布了数百个版本和APK。 我们一周内没有更改过任何代码(也没有更改过任何库的版本),但构建突然因出现此错误而停止工作。

Execution failed for task ':react-native-fbsdk:processReleaseResources'

X:\app\node_modules\react-native-fbsdk\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'.
X:\app\node_modules\react-native-fbsdk\android\build\intermediates\res\merged\release\values-v24\values-v24.xml:4: AAPT: Error retrieving parent for item: No resource found that matches the given name 'android:TextAppearance.Material.Widget.Button.Colored'.    
X:\app\node_modules\react-native-fbsdk\android\build\intermediates\res\merged\release\values-v24\values-v24.xml:3: error: Error retrieving parent for item: No resource found that matches the given name 'android:TextAppearance.Material.Widget.Button.Borderless.Colored'.    
X:\app\node_modules\react-native-fbsdk\android\build\intermediates\res\merged\release\values-v24\values-v24.xml:4: error: Error retrieving parent for item: No resource found that matches the given name 'android:TextAppearance.Material.Widget.Button.Colored'.

使用这些库的版本(package.json):

...
"react": "15.3.2",
"react-native": "0.37.0",
...
"react-native-fbsdk": "~0.5.0",
...

我们的 build.gradle 文件(仅部分内容),一直工作正常:

    compileSdkVersion 24
    buildToolsVersion '24.0.3'
    defaultConfig {
        applicationId "xxx"
        minSdkVersion 16
        targetSdkVersion 23
        versionCode 14
        versionName "1.5.3"
        ndk {
            abiFilters "armeabi-v7a", "x86"
        }
    }

dependencies {
    compile project(':react-native-device-info')
    compile project(':react-native-maps')
    compile project(':realm')
    compile project(':react-native-vector-icons')
    compile project(':react-native-image-picker')
    compile project(':react-native-fs')
    compile project(':react-native-share')
    compile project(':react-native-push-notification')
    compile project(':react-native-fbsdk')
    compile('com.google.android.gms:play-services-gcm:9.4.0') {
        force = true;
    }
    compile fileTree(include: ['*.jar'], dir: 'libs')
    compile 'com.android.support:appcompat-v7:23.0.1'
    compile 'com.facebook.react:react-native:+'
    compile 'com.fasterxml.jackson.core:jackson-annotations:2.2.3'
    compile 'com.fasterxml.jackson.core:jackson-core:2.2.3'
    compile 'com.fasterxml.jackson.core:jackson-databind:2.2.3'
}

请问有什么想法吗?


昨天我的代码运行得很好,但今天测试时却遇到了同样的错误。可能是后台有更新导致出现了问题。 - aFerrer
请查看此答案:https://dev59.com/5lgQ5IYBdhLWcg3w1nZB#42144590 - rafsanahmad007
6个回答

14

我认为这与Facebook Sdk Android Error Building是同样的问题。

你需要将以下内容更改:

compile('com.facebook.android:facebook-android-sdk:4.+') 
compile('com.facebook.android:facebook-android-sdk:4.22.1')

node_modules\react-native-fbsdk\android\build.gradle


谢谢你的提示,但这个修复与fbsdk更新的另一个错误有关(https://github.com/facebook/react-native/issues/14225)。所以它对我没有帮助 :( - Vojtech Gruchala
1
这是相反的,从4+到4.22.1。 - Starmetal

7
最终我找到了解决方案。在阅读所有答案和相关问题(Facebook Sdk Android Error Building)并尝试了许多方法(更新库,依赖项,很多版本更改等)后,我成功地重新构建了我的应用程序。然后我还原了所有不必要的更改,只留下了以下内容:
我需要在我的android/build.gradle文件中添加两个东西(迭代器和包含“force”一行)(而不是android/app/build.gradle):
allprojects {
    configurations.all {
       resolutionStrategy {
         eachDependency { DependencyResolveDetails details ->
           if (details.requested.group == 'com.facebook.react' && details.requested.name == 'react-native') {
             details.useVersion "0.37.0" // Your real React Native version here
           }
         }
         force 'com.facebook.android:facebook-android-sdk:4.22.1'
       }
    }
}

无论如何,感谢您提供的所有提示!


我的团队刚刚发现了一件我没有意识到的事情 - 这个解决方案只适用于安卓,我们的应用程序仍然无法为iOS构建 :( - Vojtech Gruchala
我也遇到了同样的问题,你的解决方案对我很有效,使用的是react-native v0.41.2和react-native-fbsdk v0.5.0。谢谢! - Jordan

3

实际上,存在一些依赖问题。我也遇到过同样的问题,但是通过应用这些版本不匹配的更改,我解决了这个问题:

compileSdkVersion 24
buildToolsVersion '24.0.3'

compile 'com.android.support:appcompat-v7:23.0.1'

确保这些版本的API相同。也就是说,如果您正在使用24 API进行构建,则appcompat-v7应该是24.0.+。


谢谢,我已经了解了API不兼容的情况,并尝试升级(全部到24)或降级(全部到23)所有版本/ API,但结果都是负面的:( 但是在解决主要问题(稳定应用程序)之后,我将尝试统一这些版本。 - Vojtech Gruchala

2

解决方案可以在这个问题中找到 Facebook Sdk Android Error Building

我也分叉了一个仓库,并提供了所有这些更改,使其能够与RN 0.42一起运行。你可以通过输入yarn add https://github.com/kidnapkin/react-native-fbsdk.git来安装它。


谢谢!这个评论对我帮助最大!主要是通过链接相关问题,我找到了解决方案,见下文。 - Vojtech Gruchala

1
这个问题发生在更新库、添加依赖项、更改版本等操作后。你只需要匹配项目的 SDK 版本和刚刚添加或已更新的包即可解决。
  1. Go to android/app/build.gradle

    android {
      compileSdkVersion 25
      buildToolsVersion '25.0.3'
    
      defaultConfig {
        minSdkVersion 16
        targetSdkVersion 25
    

    }

  2. Go to node_modules/your-package/android/build.gradle

    android {
      compileSdkVersion 25
      buildToolsVersion '25.0.3'
    
      defaultConfig {
       minSdkVersion 16
       targetSdkVersion 25
    
如果问题还没有解决,那么请检查 package.json 中的其他包。就是这样,希望能有所帮助。

0
我通过仅修改android/app/build.gradle文件来解决该问题。 您需要按以下方式修改compileSdkVersion和buildToolsVersion。
android {
  compileSdkVersion 25
  buildToolsVersion "25.0.1"

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接