检索项目的父项时出错:找不到与给定名称匹配的资源'android:TextAppearance.Material.Widget.Button.Colored'

时间:2017-05-26 12:49:05

标签: android react-native android-gradle react-native-fbsdk

今天,我遇到了这篇文章中提到的错误: 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'
}

有什么想法吗?

6 个答案:

答案 0 :(得分: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

答案 1 :(得分:7)

最后,我找到了解决方案。在阅读了所有答案和相关问题(Facebook Sdk Android Error Building)并尝试了许多事情(库更新,依赖关系,许多版本更改等)后,我设法再次构建我的应用程序。然后我还原了所有不必要的变化,剩下的就是:

我需要在我的 android / build.gradle 文件(不是android / app)中添加2件事(迭代器和#34;强制"行) /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'
       }
    }
}

感谢所有的提示!

答案 2 :(得分:3)

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

compileSdkVersion 24
buildToolsVersion '24.0.3'

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

确保这些版本是相同的API。意味着如果您使用24 API进行构建,则appcompat-v7应为24.0。+。

答案 3 :(得分:2)

此问题Facebook Sdk Android Error Building

中提供了解决方案

我还分叉了一个回购并提供了所有这些变化,使其与RN 0.42一起运行。您可以通过键入yarn add https://github.com/kidnapkin/react-native-fbsdk.git

来安装它

答案 4 :(得分:1)

此问题发生在libs更新,添加依赖项,版本更改等之后。您只需要匹配项目的Sdk版本,以及刚添加或已更新的软件包。

  1. 转到android / app / build.gradle

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

    }

  2. 转到node_modules / your-package / android / build.gradle

    android {
      compileSdkVersion 25
      buildToolsVersion '25.0.3'
    
      defaultConfig {
       minSdkVersion 16
       targetSdkVersion 25
    
  3. 如果问题尚未解决,请检查package.json

    中的其他包

    多数民众赞成。希望它有所帮助

答案 5 :(得分:0)

我仅通过修改android / app / build.gradle文件来解决该问题。 您需要按如下所示修改compileSdkVersion和buildToolsVersion。

android {
  compileSdkVersion 25
  buildToolsVersion "25.0.1"