Facebook Sdk Android错误大厦
我正在尝试构建我的react-native项目并使用react-native fbsdk。Facebook Sdk Android错误大厦
不过,我得到这些错误:
/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
我目前在Linux操作系统上小学0.4.1洛基64。
我正在使用[email protected],因此,[email protected]。
我已经尝试过:
cd android && ./gradlew clean
删除该项目,并重新
npm install
它,并尝试在Android的API的23和24
挖掘到gradle后,我提出了以下解决方案。
关键是要排除react-native-fbsdk
所需的facebook-android-sdk
并在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"
}
我刚遇到这个错误。首先,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 yesterday和最新的(4.23.0)SDK可能有错误或东西。
您可以通过更改您的node_modules解决此\反应,本机fbsdk \机器人\的build.gradle来自:
compile('com.facebook.android:facebook-android-sdk:4.+')
要:
compile('com.facebook.android:facebook-android-sdk:4.22.1')
我不是帅哥的gradle,所以如果有人知道强制从父gradle.build版本更好的方式,请评论,我会更新答案。
** 编辑 **
@Andreyco设法解决这个不改变node_modules。你可以向下滚动到他的答案或点击here。
此外,正如@JuanJoseTugores通知react-native-fbsdk中有pull request正在等待批准,因此您可以检查错误的进度并在问题得到解决时收到通知。
** 另一个更新 ** 的Facebook关闭已打开了他们对这个问题的bug,说他们固定SDK。所以现在所有的解决方法都可以删除。
显然FB还没有解决这个问题。我们刚刚升级到RN 0.44 & FB 0.6.0
编辑'node_modules'中的任何东西都是最好的主意 – Andreyco
显然你是对的。这只是我发现的一种解决方法,以便立即解决此问题。这就是为什么我问为什么有更好的gradle了解的人可以在父build.gradle中解决它,而不是在node_modules – atlanteh
我设法通过在android/app/build中将'compileSdkVersion'设置为'24'来解决这个问题。 gradle'。顺便说一下,你是否能够补充旧的'react-native-fbsdk'(例如0.5.0)?看起来无论如何,它都会引入最新的Android SDK。 – Andreyco
我能够在不修改node_modules/...
下的文件的情况下解决此问题。我升级了我们的react-native-fbsdk
版0.6.0
然后添加这对我们的应用程序的build.gradle
文件在4.22.1
版本针脚facebook-android-sdk
:
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"
...
}
正如你可以看到:我们正在与建设这里有补丁传入,
https://github.com/facebook/react-native-fbsdk/pull/339 https://github.com/facebook/react-native-fbsdk/pull/338
在此期间如果你使用的反应 - 本机fbsdk V0.5你可以做
yarn add [email protected]://github.com/tugorez/react-native-fbsdk
我已将建议的变化和它的工作:)但请注意我我不会支持这一点,不会保持更新,所以......只要你可以,你应该回到官方图书馆。
对于那些谁正在寻找使其工作使用RN 0.42它现在是一个有反应的版本稳定,您可能需要使用Facebook的SDK 4.18.0"com.facebook.android:facebook-android-sdk:4.18.0"
这是一个由所释放的一种除了https://developers.facebook.com/bugs/1712442065726889/
,如果你正在艰难的时刻迫使Facebook的SDK被你需要尝试这个东西:那[email protected]
发布的时间,否则你可能结束了这个问题
的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)"
}
的Android /的build.gradle
// 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'
}
}
}
}
我在同样的问题兄弟,在塞拉利昂的MacOS测试使用相同的API的 –
突然发生在我身上了。 RN 0.41.2&RN-FBSDK 0.5 – atlanteh