Facebook Sdk Android错误生成

Facebook Sdk Android错误生成,facebook,react-native,fbsdk,react-native-fbsdk,Facebook,React Native,Fbsdk,React Native Fbsdk,我正在尝试构建我的react native项目,并使用react native fbsdk 但是,我发现以下错误: /home/luiz/MYP/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 ma

我正在尝试构建我的react native项目,并使用react native fbsdk

但是,我发现以下错误:

/home/luiz/MYP/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'.

/home/luiz/MYP/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'.

/home/luiz/MYP/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'.

/home/luiz/MYP/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'.


:react-native-fbsdk:processReleaseResources FAILED
我目前的操作系统是LinuxElemental0.4.1Lokix64


我在用react-native@0.37.0而且,正因为如此,我们会做出反应-fbsdk@0.4.0.

我已经试过了:

  • cd-android&./gradlew-clean

  • 删除项目并重新安装它

  • 试试安卓API的23和24


在深入研究gradle之后,我提出了以下解决方案

关键是要排除
facebook安卓sdk
所需的
react native fbsdk
并在
facebook安卓sdk
模块上引入所需的(工作)版本-最好不要修改node_modules文件夹中的任何内容

幸运的是,gradle提供了这一点

// android/app/build.gradle

dependencies {
    compile(project(':react-native-fbsdk')){
      exclude(group: 'com.facebook.android', module: 'facebook-android-sdk')
    }
    compile "com.facebook.android:facebook-android-sdk:4.22.1"
}

我刚刚遇到了这个错误。首先,RN Facebook SDK v.0.6.0仅适用于
react native>=0.44.0
,因此您必须将
package.json
中的依赖项更新为
react native:^0.44.0
。然后转到Android
build.gradle
文件并进行更改:
compileSdkVersion 25
compile“com.Android.support:appcompat-v7:25.0.0”
显然facebook已经更新了他们的sdk,最新(4.23.0)的sdk可能有bug或其他问题

您可以通过将节点\u modules\react native fbsdk\android\build.gradle从以下位置更改来解决此问题:

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

我不是gradle人,所以如果有人知道从父gradle.build强制执行版本的更好方法,请发表评论,我会更新答案

**编辑**

@Andreyco在不改变node_模块的情况下解决了这个问题。您可以向下滚动到他的答案或单击

此外,正如@JuanJoseTugores所通知的,还有一个等待批准的问题,因此您可以检查错误的进度,并在问题解决时得到通知

**另一次更新***
Facebook关闭了针对这个问题为他们开放的sdk,称他们修复了sdk。因此,现在可以删除所有的变通方法


显然FB还没有解决这个问题。我们刚刚升级到RN 0.44&FB 0.6.0

我能够解决这个问题,而无需修改
node\u modules/…
下的文件。我将我们的
react原生fbsdk
版本升级为
0.6.0
,然后将其添加到我们应用程序的
build.gradle
文件中,以pin
facebook android sdk
的版本
4.22.1

project(':react-native-fbsdk') {
    configurations.all {
        resolutionStrategy {
            force 'com.facebook.android:facebook-android-sdk:4.22.1'
        }
    }
}

configurations.all {
    resolutionStrategy {
        force 'com.facebook.android:facebook-android-sdk:4.22.1'
        ...
    }
}
编辑:我们正在构建:

android {
    compileSdkVersion 23
    buildToolsVersion "23.0.3"
    ...
}

正如您在这里看到的,有补丁即将到来

同时,如果您使用的是react native fbsdk v0.5,您可以

纱线添加-fbsdk@https://github.com/tugorez/react native fbsdk


我已经应用了建议的更改,它正在工作:)但请注意,我不支持此操作,不会保持更新,所以。。。您应该尽快返回官方图书馆。

对于那些正在寻找帮助的人,请使用RN 0.42使其工作,该版本目前已稳定,您可能需要使用Facebook SDK 4.18.0
“com.Facebook.android:Facebook android SDK:4.18.0”
哪一个是在
react native时发布的-fbsdk@0.5.0
已发布,否则您可能会遇到以下问题:

此外,如果您在强迫facebook sdk成为您需要的东西方面遇到困难,请尝试以下方法:

android/app/build.gradle

...

dependencies {
    compile project(':react-native-fbsdk')
    compile project(':react-native-vector-icons')
    compile fileTree(dir: "libs", include: ["*.jar"])
    compile "com.android.support:appcompat-v7:23.0.1"
    compile "com.facebook.react:react-native:+"  // From node_modules
    compile "com.facebook.android:facebook-android-sdk:[4.18.0)"
}
// Top-level build file where you can add configuration options common to all sub-projects/modules.

project(':react-native-fbsdk') {
  configurations.all {
    resolutionStrategy {
      force 'com.facebook.android:facebook-android-sdk:4.18.0'
    }
  }
}

...

allprojects {
    repositories {
        ...
        configurations.all {
            resolutionStrategy {
              force 'com.facebook.android:facebook-android-sdk:4.18.0'
            }
        }
    }
}
android/build.gradle

...

dependencies {
    compile project(':react-native-fbsdk')
    compile project(':react-native-vector-icons')
    compile fileTree(dir: "libs", include: ["*.jar"])
    compile "com.android.support:appcompat-v7:23.0.1"
    compile "com.facebook.react:react-native:+"  // From node_modules
    compile "com.facebook.android:facebook-android-sdk:[4.18.0)"
}
// Top-level build file where you can add configuration options common to all sub-projects/modules.

project(':react-native-fbsdk') {
  configurations.all {
    resolutionStrategy {
      force 'com.facebook.android:facebook-android-sdk:4.18.0'
    }
  }
}

...

allprojects {
    repositories {
        ...
        configurations.all {
            resolutionStrategy {
              force 'com.facebook.android:facebook-android-sdk:4.18.0'
            }
        }
    }
}
为我修好了

在android/build.gradle中

subprojects {
    afterEvaluate {project ->
        if (project.hasProperty("android")) {
            android {
                compileSdkVersion 27
                buildToolsVersion '27.0.3'
            }
        }
    }
}

我也遇到了同样的问题,兄弟,在MacOS Sierra进行了测试,同样的API也意外地出现在我身上。RN 0.41.2和RN-FBSDK 0.5I正在使用react-native@0.37.0而且,正因为如此,我们会做出反应-fbsdk@0.4.0. 我会编辑这个问题。出于某种原因,这不是我想要的答案。它肯定会工作,直到补丁发布,它可以调整
node\u模块
imho。我的回答显示了更一般的解决方案,适用于类似的问题issues@RamonJamOnCanales我也遇到了同样的问题,但在buidl.gradle
configurations.all{resolutionStrategy{force'com.facebook.android:facebook-android-sdk:4.22.1'}}
谢谢。。。这个答案拯救了我的一天在
node\u模块中编辑任何东西都是最好的主意显然你是对的。这只是为了立即解决这个问题而找到的一个变通方法。这就是为什么我问有更好的gradle理解的人是否可以在父build.gradle中解决这个问题,它不在node_模块中。我通过在
android/app/build.gradle
中将
compileSdkVersion
设置为
24
来解决这个问题。顺便问一下,您是否能够编译旧的
react原生fbsdk
(例如0.5.0)?看起来不管怎样,它都会引入最新的Android SDK。在您的
Android/app/build.gradle
文件中更新
compileSdkVersion
后,还请确保您安装了相应的SDK(Android Studio>配置>SDK管理器>API级别)。@Andreyco否,我无法再编译0.5.0:/。您可以随时完成项目并应用这些更改。升级是一个有效的解决方案。但是,有时不适用。仅
project(':react native fbsdk'){configurations.all{resolutionStrategy{force'com.facebook.android:facebook-android-sdk:4.22.1'}}}
needed@paynd这可能对某些用户有效,然而,在我的应用程序中,它仍然试图使用较新的SDK作为依赖项,因此我需要在
react native fbsdk
项目和我自己的应用程序配置中强制使用它。