web-dev-qa-db-fra.com

Echec de la synchronisation de Gradle avec 'incapable de trouver la bibliothèque facultative'

J'ai dû réinstaller mon système et aujourd'hui, cette erreur se produit dans Android Studio lorsque j'essaie de synchroniser avec gradle:

Warning: Unable to find optional library: org.Apache.http.legacy

Ma note de projet est:

buildscript {
    repositories {
        mavenCentral()
    }
    dependencies {
        classpath 'com.Android.tools.build:gradle:1.3.0'
    }
}

allprojects {
    repositories {
        mavenCentral()
    }
}

Et mon diplôme de module:

apply plugin: 'Android'

Android {
    useLibrary  'org.Apache.http.legacy'

    compileSdkVersion 23
    buildToolsVersion '23.0.2'
    defaultConfig {
        minSdkVersion 16
        targetSdkVersion 23
    }
    buildTypes {
        release {
        }
    }
    productFlavors {
    }
}

dependencies {
    compile fileTree(include: ['*.jar'], dir: 'libs')
    compile 'com.Android.support:support-v4:23.1.1'
    compile 'com.Android.support:appcompat-v7:23.1.1'
}

À partir des documents Google :

Pour continuer à utiliser les API HTTP Apache, vous devez d'abord déclarer le fichier Dépendance suivante au moment de la compilation dans votre fichier build.gradle:

Android {
    useLibrary 'org.Apache.http.legacy'
}

J'ai essayé les suggestions mentionnées dans ce fil mais elles ne fonctionnent pas. Même résultat avec Android studio 1.5 et 2 preview.

Comment puis-je réparer cela?

Edit: Ce que j'ai essayé jusqu'ici:

  1. Remplacez les versions de Gradpath Classpath par les versions 1.3.0, 1.3.1, 1.5.0. 

  2. Modifiez les compileSdkVersion et targetSdkVersion en 22. Également les buildToolsVersion de 23.0.1, 23.0.0, 22.0.1. 

16
Daniel

Niveau supérieur build.gradle - /build.gradle

buildscript {
...
dependencies {
    classpath 'com.Android.tools.build:gradle:1.3.1'
}
}

Build.gradle spécifique au module - /app/build.gradle

Android {
compileSdkVersion 23
buildToolsVersion "23.0.0"
useLibrary 'org.Apache.http.legacy'
...
}

Ajoutez org.Apache.http.legacy.jar qui se trouve dans le dossier Android/Sdk/plateformes/Android-23/facultatif dans le répertoire app/libs et synchronisez votre projet.

14
johnrao07

Après beaucoup de travail, ces solutions fonctionnent pour moi . ** Studio\Android\sdk\plates-formes ** ici, supprimez votre Android-23 et à nouveau dans sdk manager update api 23. ** .it va résoudre votre problème.

9
Naeem Ibrahim

Dans mon cas, cela n'a pas fonctionné car il me manquait optional.json dans <sdk-path>\platforms\Android-23\optional\, répertoire avec le contenu suivant:

[
  {
    "name": "org.Apache.http.legacy",
    "jar": "org.Apache.http.legacy.jar",
    "manifest": false
  }
]

Créer un nouveau fichier JSON avec le contenu ci-dessus a résolu le problème pour moi.

8
notsopopularguy

Vous devez ajouter le fichier org.Apache.http.legacy.jar jar dans le dossierapp/libsde votre projet Android Stuido. 

  Jar Location - `<SDK LOCATION>\Android-sdk\platforms\Android-23\optional`  

Pour ce faire, faites un clic droit sur votre projet et sélectionnez Show in Explorer puis accédez à ...\app\libs et collez le fichier jar ci-dessus etSynchronisez votre projet avec le fichier Gradle

Module:app

Android {
compileSdkVersion 'Google Inc.:Google APIs:23'
buildToolsVersion "24.0.0"
defaultConfig {
    applicationId "<ur_app_id>"
    minSdkVersion 15
    targetSdkVersion 23
    versionCode 1
    versionName "1.0"
    testInstrumentationRunner "Android.support.test.runner.AndroidJUnitRunner"
}
buildTypes {
    release {
        minifyEnabled false
        proguardFiles getDefaultProguardFile('proguard-Android.txt'), 'proguard-rules.pro'
    }
}
}
2
Rupesh Yadav

Dans mon cas, le problème se produisait réellement car le SDK correct n’était pas installé sur cet ordinateur. En allant à .../Android/Sdk/platforms/Android-23, je pouvais voir que le dossier était vide. L'ajout du SDK 23 via le gestionnaire de SDK a résolu le problème et m'a permis de compiler.

Vous devez vérifier manuellement que vous avez la même version du SDK installée que celle spécifiée sous compileSdkVersion dans votre fichier build.gradle.

1
Tim Rae

Mettez à jour votre fichier Gradle de projet pour utiliser Gradle version 1.3.1.

classpath 'com.Android.tools.build:gradle:1.3.1'

Essayez également d’ajouter un dépôt codehause.

repositories {
        mavenCentral()
        maven{
            url 'http://repository.codehaus.org'
        }
    }
1
Adhikari Bishwash

Pour gagner du temps, 2 solutions sont meilleures et fonctionnent pour moi.

Solution 1:

ouvrez votre gestionnaire de sdk Android et réinstallez l’API 23 (supprimez-le et réinstallez-le).

Solution 2:

Téléchargez ce fichier contenant le fichier optional.json Extract et déplacez optionnel.json vers:

C:\Utilisateurs \\ AppData\Local\Android\sdk\plates-formes\Android-23\facultatif

1
Kapil Rajput

si la solution ci-dessus ne fonctionne pas, essayez de cette façon

J'ai rencontré ce problème récemment et cela est dû à la restriction de longueur de chemin, je pense que c'est 256 caractères maximum.

Déplacez votre projet et la construction réussira.

0
Arpit Patel
  1. Copiez " sdk\platform\Android-23\optional\org.Apache.http.legacy.jar " dans le répertoire libs de votre module d'application, puis ajoutez-le en tant que bibliothèque.
  2. Si vous activez la proguard, veuillez éditer " proguard-rules.pro " pour conserver les classes associées ou une exception se produira.
0
yuiopt