14

今天,我遇到了这篇文章中提到的错误: 错误检索项目的父项:找不到与给定名称匹配的资源 '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'
}

请问有什么想法吗?

4

6 回答 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

于 2017-05-26T21:28:36.693 回答
7

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

我需要在我的android/build.gradle文件(不是 android/app/build.gradle)中添加两件事(迭代器和带有“force”的行):

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'
       }
    }
}

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

于 2017-05-29T12:13:33.447 回答
3

实际上我遇到了一些依赖问题,但我通过应用这些版本不匹配更改来解决它:

compileSdkVersion 24
buildToolsVersion '24.0.3'

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

确保这些版本是相同的 API。意味着如果您使用 24 API 构建,那么 appcompat-v7 应该是 24.0.+ 的东西。

于 2017-05-26T13:24:37.860 回答
2

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

我还分叉了一个 repo 并提供了所有这些更改以使其与 RN 0.42 一起运行。您可以通过键入来安装它yarn add https://github.com/kidnapkin/react-native-fbsdk.git

于 2017-05-26T13:49:44.263 回答
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
    

如果问题还没有解决,请检查 package.json 中的其他包

就是这样。希望能帮助到你

于 2018-01-08T20:08:22.743 回答
0

我只通过修改 android/app/build.gradle 文件来解决这个问题。您需要修改 compileSdkVersion 和 buildToolsVersion 如下。

android {
  compileSdkVersion 25
  buildToolsVersion "25.0.1"
于 2018-07-29T12:46:56.137 回答