Facebook Sdk Android错误构建

Lui*_*uiz 41 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 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
Run Code Online (Sandbox Code Playgroud)

我目前的操作系统是Linux Elementary 0.4.1 Loki x64.

我正在使用react-native@0.37.0,因此,react-native-fbsdk@0.4.0.

我已经尝试过了:

  • cd android && ./gradlew clean

  • 删除项目并重新npm install开始

  • 并尝试Android API的23和24.

atl*_*teh 52

显然facebook 昨天更新了他们的sdk ,最新的(4.23.0)sdk可能有一个bug或什么的.

您可以通过更改node_modules\react-native-fbsdk\android\build.gradle来解决此问题:

compile('com.facebook.android:facebook-android-sdk:4.+')
Run Code Online (Sandbox Code Playgroud)

至:

compile('com.facebook.android:facebook-android-sdk:4.22.1')
Run Code Online (Sandbox Code Playgroud)

我不是一个好朋友,所以如果有人知道从父gradle.build强制推出该版本的更好方法,请发表评论,我会更新答案.

** 编辑**

@Andreyco设法在不改变node_modules的情况下解决了这个问题.您可以向下滚动到他的答案或点击这里.

另外,正如@JuanJoseTugores所告知的那样,react-native-fbsdk中pull请求等待批准,因此您可以检查错误的进度并在解决后得到通知.

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

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

  • 在`node_modules`中编辑任何东西都是最好的想法 (13认同)
  • 显然你是对的.这只是我发现的一种解决方法,以便立即解决此问题.这就是为什么我问是否有更好的gradle理解的人可以在父build.gradle中解决它,而不是在node_modules中 (3认同)

And*_*yco 27

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

关键是要排除facebook-android-sdk所需的react-native-fbsdk并在facebook-android-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"
}
Run Code Online (Sandbox Code Playgroud)

  • 出于某种原因,这不是为了我 (3认同)

rtc*_*rry 11

我能够在不修改文件的情况下解决这个问题node_modules/....我将我们的react-native-fbsdk版本升级到0.6.0然后将其添加到我们的应用程序build.gradle文件中以固定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'
        ...
    }
}
Run Code Online (Sandbox Code Playgroud)

编辑:我们正在建设:

android {
    compileSdkVersion 23
    buildToolsVersion "23.0.3"
    ...
}
Run Code Online (Sandbox Code Playgroud)


hph*_*p95 5

我刚刚遇到这个错误.首先,RN的Facebook SDK v.0.6.0仅适用于react-native >= 0.44.0,所以你必须更新你的依赖package.jsonreact-native: ^0.44.0.然后转到Android build.gradle文件并进行此更改:compileSdkVersion 25compile "com.android.support:appcompat-v7:25.0.0"


Dav*_*rte 5

对我来说很有用

android/build.gradle

subprojects {
    afterEvaluate {project ->
        if (project.hasProperty("android")) {
            android {
                compileSdkVersion 27
                buildToolsVersion '27.0.3'
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)