J'essaie de construire mon projet react-native et d'utiliser fbsdk de réact-native.
Cependant, j'obtiens ces erreurs:
/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
Mon système d'exploitation actuel est Linux Elementary 0.4.1 Loki x64.
J'utilise [email protected] et, pour cette raison, [email protected].
J'ai déjà essayé:
cd Android && ./gradlew clean
supprimer le projet et re npm install
il
et essayez dans Android.
Après avoir approfondi mes connaissances, j'ai proposé la solution suivante.
La clé est d'exclure facebook-Android-sdk
requis par react-native-fbsdk
et tirez la version souhaitée (de travail) sur facebook-Android-sdk
module - de préférence sans rien modifier dans le dossier node_modules.
Heureusement, Gradle offre cela.
// 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"
}
Apparemment, facebook a mis à jour son sdk hier et le dernier sdk (4.23.0) peut avoir un bogue ou quelque chose du genre.
Vous pouvez résoudre ce problème en modifiant vos node_modules\react-native-fbsdk\Android\build.gradle à partir de:
compile('com.facebook.Android:facebook-Android-sdk:4.+')
À:
compile('com.facebook.Android:facebook-Android-sdk:4.22.1')
Je ne suis pas un gars de Gradle, donc si quelqu'un connaît un meilleur moyen de forcer la version parent de gradle.build, veuillez commenter et je mettrai à jour la réponse.
** [~ # ~] éditer [~ # ~] **
@Andreyco a réussi à résoudre ce problème sans changer de node_modules. Vous pouvez faire défiler sa réponse ou cliquer ici .
De plus, comme l'a annoncé @JuanJoseTugores, il y a un demande d'extraction dans react-native-fbsdk en attente d'approbation, afin que vous puissiez vérifier la progression du bogue et être averti de sa résolution.
** Une autre mise à jour **Facebook a fermé le bug qui avait été ouvert pour eux concernant ce problème, affirmant qu'ils avaient corrigé le SDK. Alors maintenant, toutes les solutions de contournement peuvent être supprimées.
Apparemment, FB n'a toujours pas résolu ce problème. Nous venons de passer à RN 0.44 & FB 0.6.0
J'ai pu résoudre ce problème sans modifier les fichiers sous node_modules/...
. J'ai amélioré notre react-native-fbsdk
version à 0.6.0
puis ajoutez ceci à notre application build.gradle
fichier à épingler facebook-Android-sdk
à la version 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'
...
}
}
Edit: Nous construisons avec:
Android {
compileSdkVersion 23
buildToolsVersion "23.0.3"
...
}
Je viens de rencontrer cette erreur. Premièrement, RN Facebook SDK v.0.6.0 ne fonctionne que pour react-native >= 0.44.0
, vous devez donc mettre à jour votre dépendance dans package.json
à react-native: ^0.44.0
. Ensuite, allez à Android build.gradle
file et apporte les modifications suivantes: compileSdkVersion 25
et compile "com.Android.support:appcompat-v7:25.0.0"
this corrigé pour moi
dans Android/build.gradle
subprojects {
afterEvaluate {project ->
if (project.hasProperty("Android")) {
Android {
compileSdkVersion 27
buildToolsVersion '27.0.3'
}
}
}
}
Pour ceux qui cherchent, faites-le fonctionner en utilisant RN 0.42 , qui est maintenant celui avec la version réactive stable, vous devrez peut-être utiliser le Facebook SDK 4.18.0 "com.facebook.Android:facebook-Android-sdk:4.18.0"
qui est celui qui a été publié au moment où [email protected]
a été publié, sinon vous risquez de vous retrouver avec le problème suivant: https://developers.facebook.com/bugs/1712442065726889/
En outre, si vous avez du mal à forcer le sdk de facebook à être ce dont vous avez besoin, essayez ceci:
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'
}
}
}
}
Comme vous pouvez le voir ici, il y a des patchs entrants,
https://github.com/facebook/react-native-fbsdk/pull/339https://github.com/facebook/react-native-fbsdk/pull/338
en attendant, si vous utilisez react-native-fbsdk v0.5 vous pourriez faire
yarn add react-native-fbsdk@https://github.com/tugorez/react-native-fbsdk
J'ai appliqué les modifications suggérées et cela fonctionne :) mais sachez que je n'appuierai pas cela et que je ne le maintiendrai pas à jour donc ... dès que vous pourrez, vous devriez retourner à la bibliothèque officielle.