it-swarm.com.de

Gradle konnte nicht mit "Kann optionale Bibliothek nicht finden" synchronisiert werden

Ich musste mein System neu installieren und heute bekomme ich diesen Fehler in Android Studio, wenn ich versuche, mit gradle zu synchronisieren:

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

Mein Projektabschluss ist:

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

allprojects {
    repositories {
        mavenCentral()
    }
}

Und mein Modulgrad:

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'
}

Aus den Google-Dokumenten :

Um die Apache-HTTP-APIs weiterhin verwenden zu können, müssen Sie zunächst die .__-Datei angeben. folgende Abhängigkeit der Kompilierungszeit in Ihrer build.gradle-Datei:

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

Ich habe versucht, die Vorschläge in diesem Thread - zu erwähnen aber sie funktionieren nicht. Gleiches Ergebnis mit Android Studio 1.5 und 2 Preview.

Wie kann ich das beheben?

Edit: Dinge, die ich bisher ausprobiert habe:

  1. Ändern Sie die Klassenpfadversionen von Gradle auf 1.3.0, 1.3.1, 1.5.0. 

  2. Ändern Sie compileSdkVersion und targetSdkVersion in 22. Auch die buildToolsVersion von 23.0.1, 23.0.0, 22.0.1. 

16
Daniel

Oberste Ebene build.gradle - /build.gradle

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

Modulspezifisches build.gradle - /app/build.gradle

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

Fügen Sie org.Apache.http.legacy.jar, das sich im Ordner Android/Sdk/platform/Android-23/optional befindet, zum Ordner app/libs hinzu und synchronisieren Sie Ihr Projekt

14
johnrao07

Nach langem Arbeiten funktionieren diese Lösungen für mich . ** Studio\Android\sdk\platform ** löschen Sie hier Ihr Android-23 und von sdk manager update api 23 wiederit wird Ihr Problem lösen.

9
Naeem Ibrahim

In meinem Fall funktionierte es nicht, weil mir optional.json in <sdk-path>\platforms\Android-23\optional\, Verzeichnis mit folgendem Inhalt fehlte:

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

Das Erstellen einer neuen JSON-Datei mit obenstehendem Inhalt hat das Problem für mich gelöst.

8
notsopopularguy

Sie müssen die org.Apache.http.legacy.jar-JAR-Datei im Ordnerapp/libsIhres Android-Stuido-Projekts hinzufügen. 

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

Klicken Sie dazu mit der rechten Maustaste auf Ihr Projekt und wählen Sie Show in Explorer. Gehen Sie dann zu ...\app\libs und fügen Sie die Datei jar ein, undIhr Projekt mit der Gradle-Datei

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

In meinem Fall trat das Problem tatsächlich auf, weil auf diesem Computer nicht das richtige SDK installiert war. Bei der Navigation zu .../Android/Sdk/platforms/Android-23 konnte ich sehen, dass der Ordner leer war. Durch Hinzufügen des SDK 23 über den SDK-Manager wurde das Problem behoben und ich konnte kompilieren.

Sie sollten manuell überprüfen, ob Sie dieselbe Version des SDK installiert haben, die in der Datei build.gradle unter compileSdkVersion angegeben ist.

1
Tim Rae

Aktualisieren Sie Ihre Projekt-Gradle-Datei, um die Gradle-Version 1.3.1 zu verwenden.

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

Versuchen Sie auch, das Codehause-Repo hinzuzufügen.

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

Um Zeit zu sparen, sind 2 Lösungen am besten und funktionieren für mich.

Lösung 1:

Öffnen Sie Ihren Android-SDK-Manager und installieren Sie API 23 erneut (entfernen und erneut installieren).

Lösung 2:

Laden Sie diese Datei herunter, die die optional.json-Datei .__ enthält. Extrahieren Sie und verschieben Sie optional.json nach:

C:\Benutzer \\ AppData\Local\Android\sdk\platform\Android-23\optional

1
Kapil Rajput

wenn die obige Lösung nicht funktioniert, versuchen Sie es auf diese Weise

Ich habe dieses Problem kürzlich erfahren, und es ist auf die Pfadlängenbeschränkung zurückzuführen.

Verschieben Sie Ihr Projekt und der Build wird erfolgreich abgeschlossen.

0
Arpit Patel
  1. Kopieren Sie " sdk\platform\Android-23\optional\org.Apache.http.legacy.jar " in das libs-Verzeichnis Ihres App-Moduls und fügen Sie es als Bibliothek hinzu.
  2. Wenn Sie den Proguard aktivieren, bearbeiten Sie " proguard-rules.pro ", um verwandte Klassen beizubehalten, oder es tritt eine Ausnahme auf.
0
yuiopt