Ich habe ein Problem, bei dem ich versuche, eine Bibliothek mit dem Namen ParseLoginUI
in mein Projekt aufzunehmen.
Das Problem ist, dass es das bereitgestellte Tag verwendet, anstatt zu kompilieren. Ich glaube, dass das bereitgestellte Tag bedeutet, dass das Projekt diese Abhängigkeit liefern muss, damit die Bibliothek funktioniert, anstatt dass diese Bibliothek die Bibliotheken selbst kompiliert.
In meiner Android-Bibliothek verweist das Facebook-SDK also so.
provided 'com.facebook.Android:facebook-Android-sdk:4.0.1'
Dann kompiliere ich in meinem mobile/build.gradle, dem mein Hauptmodul, die Facebook-SDKs so.
compile 'com.facebook.Android:facebook-Android-sdk:4.0.1'
Ich habe die Anleitung zum Installieren dieser Bibliothek befolgt und soll dies auch tun. Hier ist die Warnung, die ich bekomme, die mich am Kompilieren hindert, das von der ParseLoginUI/build.gradle
-Datei (der Datei, die sie bereitstellt) geworfen wird.
Warning:Project ParseLoginUI: provided dependencies can only be jars. com.facebook.Android:facebook-Android-sdk:aar:4.0.1 is an Android Library.
Die Dokumentation für diese Bibliothek enthält ein Update, das wie folgt lautet:
Wenn Sie Gradle 1.1.0 oder höher verwenden, kann Auftreten. "Warnung: Project ParseLoginUI: Die angegebenen Abhängigkeiten können nur jars sein. Com.facebook.Android:facebook-Android-sdk:aar : 4.0.1 ist eine Android Bibliothek ". Es ist eine offene Ausgabe des Android Gradle Build Tools. Derzeit Verwendet der Workround Gradle 1.0.0.
Fair genug, aber ich möchte mein Gradle nicht herunterstufen (derzeit läuft Version 1.2.3), um dieses Problem zu lösen. Es muss einen Weg geben, um dies oder einen besseren Weg zu tun.
Meine Frage
Wie kann ich das Facebook SDK sowohl in das Bibliotheksmodul als auch in mein Hauptmodul aufnehmen?
sie haben bereits erwähnt, dass es sich bei Gradle um ein offenes Problem handelt. Wenn Sie ParseLoginUI als Bibliotheksmodul verwenden. Ändern Sie einfach die Datei build.gradle in ParseLoginUI selbst.
provided 'com.facebook.Android:facebook-Android-sdk:4.0.1'
to
compile 'com.facebook.Android:facebook-Android-sdk:4.0.1'
Versuchen Sie dies: http://www.labouisse.com/how-to/2014/07/28/gradle-provided-scope-and-intellij/
Er ahmt grundsätzlich die bereitgestellte Implementierung nach.
Gemäß diesem Problem sollte es möglich sein, das Gradle-Plugin 1.3.0-beta3
zu verwenden. Möglicherweise müssen Sie Ihre Build-Tools auf Version 23.0.0 rc1
oder höher aktualisieren.
Nach dem Versuch habe ich die Lösung gefunden…
AAR bedeutet in erster Linie Android-Archivbibliothek. Dies ist kein JAR. Ich habe etwas gesucht, das facebook-Android-sdk-4.0.1.jar
heißt, aber kein Glück.
Der Trick besteht darin, Facebook-Code herunterzuladen und als Modul hinzuzufügen. Dies funktioniert perfekt und Sie können Gradle 1.2.3 mit ParseLoginUI verwenden.
Gehen Sie hier: https://developers.facebook.com/docs/Android/downloads
Download: https://developers.facebook.com/resources/facebook-Android-sdk-4.0.1.Zip Dekomprimieren Sie es.
Gehen Sie zu Ihrem eigenen Projekt. - Entfernen Sie in Ihrem ParseLoginUI-Gradel den Verweis auf Parse
Drücken Sie FILE, NEW und IMPORT MODULE.
Wählen Sie einen Ordner mit dem Namen facebook aus, der sich in der unkomprimierten Zip-Datei befindet.
Rufen Sie dieses Modul auf facebook-Android-sdk-4.0.1.
Fügen Sie nun in Ihrem Parseloginui eine Abhängigkeit zu diesem Modul hinzu, indem Sie Folgendes verwenden:
compile project(':facebook-Android-sdk-4.0.1’)
Sie müssen auch eine Datei aus der heruntergeladenen Zip-Datei in den neuen Modulordner kopieren. Die Datei lautet gradle.properties. Die, die hat:
Android_BUILD_MIN_SDK_VERSION=9
Android_BUILD_TARGET_SDK_VERSION=21
Android_BUILD_TOOLS_VERSION=21.1.2
Android_BUILD_SDK_VERSION=21
Das ist alles.
Drücken Sie SYNCHRONIZE und drücken Sie die Daumen.
Ich habe in meinem Fall nach mehreren Stunden mit Gradle und Android Studio gearbeitet. Lassen Sie es mich wissen. Wenn Sie Referenzprobleme haben (ich hatte), verwenden Sie FILE, PROJECT STRUCTURE zum Hinzufügen Das Jar verweist korrekt auf Ihre Module. (Ich habe sie manuell geschrieben, und es scheint, als wäre dies ein Fehler in meinen Parsenreferenzen gewesen, wahrscheinlich ein Pfad oder ein Symbol. Weiß nicht. Tun Sie das über die Benutzeroberfläche von Android Studio behebt das Problem). Übrigens, Sie können eine Version von parse in ParseLoginUI und eine neuere Version in Ihrem Projekt verwenden (ich habe das nicht für die facebook-Version getestet).
Folgendes habe ich in meiner ParseLoginUI-Gradle-Datei:
compile 'com.parse.bolts:bolts-Android:1.2.0'
compile 'com.Android.support:support-v4:22.0.0'
compile project(':facebook-Android-sdk-4.0.1')
compile files('libs/Parse-1.9.1.jar')
compile files('libs/ParseFacebookUtilsV4-1.9.1.jar')
Und das habe ich in meiner App gradle:
compile 'com.google.Android.gms:play-services:7.5.0'
compile project(':facebook-Android-sdk-4.0.1')
compile 'com.parse.bolts:bolts-Android:1.2.0'
compile files('libs/Parse-1.9.2/Parse-1.9.2.jar')
compile files('libs/Parse-1.9.2/ParseFacebookUtilsV4-1.9.2.jar')
compile project(':ParseLoginUI’)
Hinweis: Ich verwende die Gradle-Version 2.4 und die Android-Plugin-Version 1.2.3. Wählen Sie dies in DATEI, PROJEKTSTRUKTUR, PROJEKT.
Viel Glück.
Sie können diese Syntax ausprobieren:
angegeben (Name: "", ext: 'aar')
Stellen Sie sicher, dass Ihr Hauptbuild.gradle den Pfad oder das Maven-Repo zum gewünschten AAR-Paket enthält.
Ich hatte dieses Problem mit Kalligraphie (github.com/chrisjenx/Calligraphy) und Gradle 2.3.3. Ich habe das Repository von jcenter () in mavenCentral () geändert und jetzt ist es in Ordnung!
stattdessen,
ParseLoginUI von hier klonen
Importieren Sie ParseLoginUI als Modul und fügen Sie diese in Gradle ein
compile project(':ParseLoginUI')
compile 'com.facebook.Android:facebook-Android-sdk:4.0.1'
Hoffe das hilft