J'ai soudainement commencé à avoir cette erreur en essayant de construire. Tout cela fonctionnait il y a quelques semaines sans aucun changement à ma connaissance. Le problème semble être lié à react-native-fbsdk
, mais il ne répertorie pas support.appcompat-v7.25.x
dans son build.gradle. Aucun conseil?
A problem occurred configuring project ':app'.
> A problem occurred configuring project ':react-native-fbsdk'.
> Could not resolve all dependencies for configuration ':react-native-fbsdk:_debugCompile'.
> Could not find com.Android.support:appcompat-v7:25.3.1.
Searched in the following locations:
file:/Users/a/.m2/repository/com/Android/support/appcompat-v7/25.3.1/appcompat-v7-25.3.1.pom
file:/Users/a/.m2/repository/com/Android/support/appcompat-v7/25.3.1/appcompat-v7-25.3.1.jar
https://jcenter.bintray.com/com/Android/support/appcompat-v7/25.3.1/appcompat-v7-25.3.1.pom
https://jcenter.bintray.com/com/Android/support/appcompat-v7/25.3.1/appcompat-v7-25.3.1.jar
build.gradle
apply plugin: "com.Android.application"
apply from: project(':react-native-config').projectDir.getPath() + "/dotenv.gradle"
import com.Android.build.OutputFile
apply from: "../../node_modules/react-native/react.gradle"
apply from: "../../node_modules/react-native-code-Push/Android/codepush.gradle"
def enableSeparateBuildPerCPUArchitecture = false
def enableProguardInReleaseBuilds = false
Android {
compileSdkVersion 23
buildToolsVersion "23.0.2"
defaultConfig {
applicationId "___"
minSdkVersion 16
targetSdkVersion 23
versionCode 22
versionName "1.5.0"
ndk {
abiFilters "armeabi-v7a", "x86"
}
manifestPlaceholders = [manifestApplicationId: "___",
onesignal_app_id: "___",
onesignal_google_project_number: "___"]
multiDexEnabled true
renderscriptTargetApi 19
renderscriptSupportModeEnabled true
}
signingConfigs {
release {
storeFile file(MYAPP_RELEASE_STORE_FILE)
storePassword MYAPP_RELEASE_STORE_PASSWORD
keyAlias MYAPP_RELEASE_KEY_ALIAS
keyPassword MYAPP_RELEASE_KEY_PASSWORD
}
}
splits {
abi {
reset()
enable enableSeparateBuildPerCPUArchitecture
universalApk false // If true, also generate a universal APK
include "armeabi-v7a", "x86"
}
}
buildTypes {
release {
minifyEnabled enableProguardInReleaseBuilds
proguardFiles getDefaultProguardFile("proguard-Android.txt"), "proguard-rules.pro"
signingConfig signingConfigs.release
}
}
applicationVariants.all { variant ->
variant.outputs.each { output ->
// For each separate APK per architecture, set a unique version code as described here:
// http://tools.Android.com/tech-docs/new-build-system/user-guide/apk-splits
def versionCodes = ["armeabi-v7a":1, "x86":2]
def abi = output.getFilter(OutputFile.ABI)
if (abi != null) { // null for the universal-debug, universal-release variants
output.versionCodeOverride =
versionCodes.get(abi) * 1048576 + defaultConfig.versionCode
}
}
}
}
dependencies {
compile project(':react-native-device-info')
compile project(':react-native-code-Push')
compile project(':react-native-image-crop-picker')
compile project(':react-native-image-picker')
compile project(':react-native-fs')
compile project(':react-native-vector-icons')
compile project(':react-native-material-kit')
compile project(':react-native-config')
compile project(':react-native-onesignal')
compile project(':react-native-Push-notification')
compile project(':react-native-Android-permissions')
compile project(':react-native-Android-keyboard-adjust')
compile project(':react-native-fbsdk')
compile (project(':react-native-fbads')) {
exclude group: 'com.google.Android.gms'
}
compile 'com.facebook.Android:audience-network-sdk:4.18.+'
compile 'com.google.ads.mediation:facebook:4.18.+'
compile 'com.google.firebase:firebase-core:10.2.0'
compile 'com.google.firebase:firebase-crash:10.2.0'
compile 'com.google.firebase:firebase-ads:10.2.0'
compile project(':react-native-billing')
compile project(':react-native-blur')
compile project(':instabug-reactnative')
compile project(':mobile-center-analytics')
compile project(':mobile-center-crashes')
compile (project(':react-native-appodeal')) {
exclude group: 'com.facebook.ads'
exclude (group: 'javax.inject', module: 'javax.inject')
}
compile project(':cheetah')
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.fresco:animated-gif:0.12.0"
compile "com.Android.support:multidex:1.0.1"
}
task copyDownloadableDepsToLibs(type: Copy) {
from configurations.compile
into 'libs'
}
apply plugin: 'com.google.gms.google-services'
J'ai eu le même problème (appcompat-v7: 25.3.1), sur un projet Android, mais je n'ai pas réagi.
J'ai d'abord essayé de nettoyer le cache gradle (~/.gradle/caches), comme expliqué ici , mais cela n'a pas aidé.
Ensuite, j'ai regardé le gestionnaire de SDK.
Les bibliothèques de support Android sont normalement installées via sdkmanager. Les bibliothèques sont ensuite stockées dans un référentiel Maven local: <SDK_HOME>/sdk/extras/Android/m2repository/
.
Par exemple, pour appcompat-v7
, la liste des versions installées est dans <SDK_HOME>/sdk/extras/Android/m2repository/com/Android/support/appcompat-v7/maven-metadata.xml
.
Ainsi, pour Android Support Repository (révision: 47.0.0), la dernière version était normalement 25.3.1.
Pour résoudre mon problème, je devais désinstaller le référentiel de support Android via le SDK Manager, puis le réinstaller.
J'ai aussi trouvé un autre moyen de récupérer les bibliothèques de support: à distance . Après avoir lu ceci ( https://developer.Android.com/topic/libraries/support-library/setup.html#add-library ) et modifier <PROJECT_ROOT>/build.gradle
comme ceci:
allprojects {
repositories {
jcenter()
maven {
url "https://maven.google.com"
}
}
}
Ensuite, j'ai essayé d'utiliser une version plus récente de appcompat-v7: 25.4.0 qui n'était pas dans mon référentiel Maven local et cela a fonctionné!
La liste des versions de ce référentiel Google Maven de cette bibliothèque est disponible à l’adresse suivante: https://dl.google.com/dl/Android/maven2/com/Android/support/appcompat-v7/maven-metadata .xml .
Mon cas était qu'il s'agit de react-native-fbsdk
build.gradle ( https://github.com/facebook/react-native-fbsdk/blob/master/Android/build.gradle ):
apply plugin: 'com.Android.library'
Android {
compileSdkVersion 23
buildToolsVersion "23.0.1"
defaultConfig {
minSdkVersion 16
targetSdkVersion 23
versionCode 1
versionName "1.0"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-Android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
testCompile 'junit:junit:4.12'
compile 'com.Android.support:appcompat-v7:23.1.0'
compile 'com.facebook.react:react-native:+' // support react-native-v0.22-rc+
compile('com.facebook.Android:facebook-Android-sdk:4.+')
}
J'utilise React Native 0.37, c'est donc la ligne qui s'est cassée pour moi:
compile('com.facebook.Android:facebook-Android-sdk:4.+')
Devait changer ceci pour la compatibilité:
compile('com.facebook.Android:facebook-Android-sdk:4.18.+')
Si vous avez mis à niveau une version 0.5 à 0.6 de react-native-fbsdk avec ce problème, ouvrez votre projet Android (pathToYourApp/Android
) dans Android Studio et il vous proposera automatiquement de mettre à jour vos dépendances. Maintenant ça devrait marcher!
Pour résoudre ce problème:
Ouvrez package.json et modifiez la version de réaction pour:
"react": "16.0.0-alpha.3",
"react-native": "0.43.1",
Supprimer le répertoire node_modules
Et réinstallez npm avec la commande npm install
En plus: Si vous obtenez une ERREUR app:compileDebugJava
, lancez react-native upgrade
(Vous avez la solution de cette page github et cela a fonctionné pour moi)
Depuis que gradle ne supporte pas encore la déclaration de référentiels par artefact.
J'ai modifié mon build.gradle (pas app/build.gradle) pour forcer toutes les dépendances à réagir de manière native à une version spécifique:
allprojects {
configurations.all {
resolutionStrategy {
eachDependency { DependencyResolveDetails details ->
if (details.requested.group == 'com.facebook.react' && details.requested.name == 'react-native') {
def file = new File("$rootDir/../node_modules/react-native/package.json")
def version = new groovy.json.JsonSlurper().parseText(file.text).version
details.useVersion version
}
}
}
}
}
Pour cela, essayez l’une des options suivantes:
1. Mettez à jour votre SDK manager
> Allez à build menu> clean project
> puis build project
ou
2. Faites un clic droit sur le dossier du projet> ouvrirmodule setting
> libraries
> ajouter com.Android.support:appcompat-v7:25.3.1
> sync
le projet
3. Cliquez sur le menu file
> ouvrir project structure
> et classer la libraries
Il semble que ce soit un problème avec react-native lui-même ... Il n'y a pas encore de solution officielle, mais certaines personnes ont signalé que la mise à niveau avait résolu leur problème. Vous pouvez vérifier plus de détails ici
Mise à jour 1: Bonjour @ Rachman, c’est l’erreur exacte que j’ai eue et qui m’a incité à chercher plus haut. Il y a un autre ticket enregistré # 14225 pour la même chose (impossible de poster le lien pour une raison quelconque). Je pouvais simplement le résoudre en incluant la version exacte de la version native de react dans la ligne de dépendance build.gradle compile "com.facebook.react:react-native:0.xx.y"
au lieu de compile 'com.facebook.react:react-native:+'
Vous pouvez essayer ce pour tous les projets utilisant ce paramètre ou plus. Les paramètres élégants suggérés dans le numéro 14223 ci-dessus par l'utilisateur david50407
Update 2 Ceci est officiellement corrigé maintenant, regardez https://github.com/facebook/react-native/issues/14225#issuecomment-305073392 (il a fallu supprimer lien précédent pour le numéro 14223 car je ne peux pas poster plus de 2 liens)