it-swarm.com.de

Wie erstelle ich ein jar für Android Library Project

Ich muss eine Bibliothek erstellen, die ich in einer JAR-Datei an den Client exportieren möchte. Gibt es eine Möglichkeit, ein Glas mit den darin enthaltenen Ressourcen zu erstellen?

Der Google AdMob hat eine solche JAR-Datei, die eine Ressourcendatei wie R $ layout.class enthält. Diese Seite beschreibt eine Möglichkeit, dies zu tun, aber ich kann nicht genau verstehen, wie ich das Bibliotheksprojekt mit der obigen Methode in eine Anwendung importieren soll.

72
Aayush Rana

Dies ist die nächste, die Sie bekommen können:

Schritt 1: Erstellen Sie ein reguläres Android Bibliotheksprojekt und bringen Sie es zum Laufen.

Schritt 2: Kopieren Sie das Android Bibliotheksprojekt in ein anderes Verzeichnis.

Schritt 3: Erstellen Sie eine JAR aus den kompilierten Java Klassen aus dem ursprünglichen Android Bibliotheksprojekt und fügen Sie diese JAR in das libs/ Verzeichnis der Kopie, die Sie in Schritt 2 erstellt haben. Sie sollten in der Lage sein, ProGuard auf dieser JAR manuell auszuführen, obwohl ich das nicht ausprobiert habe.

Schritt 4: Entfernen Sie alles aus dem src/ Verzeichnis des kopierten Bibliotheksprojekts, leer und leer src/ Verzeichnis.

Schritt 5: Packen Sie das kopierte Android Bibliotheksprojekt zu oder verteilen Sie es auf andere Weise.

Dadurch erhalten Sie ein Android Bibliotheksprojekt wie das Play Services-Projekt, in dem die Ressourcen verfügbar sind, der Quellcode jedoch nicht.

UPDATE : Ein noch besserer Ansatz besteht heutzutage darin, Ihr Bibliotheksprojekt als AAR zu verpacken. Dies ist die native Art und Weise von Android, aus Ihrem kompilierten Code ein wiederverwendbares Artefakt zu erstellen Ressourcen. Derzeit (Juli 2014) sind Gradle für Android, Android Studio und das Android-maven-plugin kann AARs erstellen und verarbeiten.

80
CommonsWare

Das funktioniert!

  1. Machen Sie Ihr Bibliotheksprojekt zu einem normalen Projekt, indem Sie das IsLibrary-Flag deaktivieren.
  2. Führen Sie Ihr Projekt als Android Anwendung aus. (Es wird kein Fehler angezeigt)
  3. Sie finden eine .jar-Datei im bin-Ordner zusammen mit .apk.
  4. Geben Sie Ihnen .jar, die Ihre Bibliothek verwenden möchten.
  5. Sagen Sie ihnen, sie sollen nur externe JARs in den Erstellungspfad importieren.

Dies funktioniert gut mit allen Ressourcen. Ich danke Ihnen allen. für deine verantwortung

21
Aayush Rana

Führen Sie die folgenden Schritte aus, um ein verteilbares Glas Ihrer Bibliothek zu erhalten (überprüft für ein Bibliotheksprojekt ohne externe Abhängigkeiten):

  1. Erstellen Sie Ihr Bibliotheksprojekt. Putze es. Sie erhalten eine Datei libraryProjectName.jar im Ordner bin. (Stellen Sie sicher, dass "is Library" im Bibliotheksprojekt ausgewählt ist.
  2. Kopieren Sie die JAR-Datei in den Ordner libs Ihrer Zielanwendung
  3. Aktualisieren Sie Ihren Arbeitsbereich und drücken Sie Ctr+Shift+O (unter Windows/Linux) oder Cmd+Shift+O (auf Mac), um alle Importabhängigkeiten aus der hinzugefügten Bibliothek aufzulösen.

Kommentar für den Fall eines Problems.

13
Akshat Singhal

Getestet mit ADT 22.2.1

  1. Erstellen Sie Ihr Bibliotheksprojekt
  2. Erstellen Sie ein leeres Projekt
  3. Fügen Sie Ihrem leeren Projekt ein Bibliotheksprojekt hinzu
  4. Projekt erstellen
  5. Im Ordner/gen finden Sie eine Klasse für Ihr Bibliotheksprojekt, die Ihre Ressourcen für das lib-Projekt enthält.
  6. JAR exportieren (nur diese Klasse auswählen ... aus dem Ordner/gen)
  7. Exportieren Sie JAR aus Ihrem lib-Projekt
  8. Benennen Sie exportierte Dateien in Zip um und führen Sie den Inhalt zusammen
  9. Benennen Sie die endgültige Datei in JAR um und fügen Sie sie dem Projekt hinzu.
3
coltbg

Sie können keine Ressourcendateien in jar packen. Sie können Ihr Projekt als Bibliotheksprojekt exportieren.

Sie exportieren Ihre Utility-Klassen, die sich nicht auf Ressourcen in Android, dh reinen Java Klassen beziehen, als JAR-Datei.

Überprüfen Sie den unten stehenden Link

http://developer.Android.com/tools/projects/index.html

So machen Sie Ihr Projekt zu einem Bibliotheksprojekt

Klicken Sie mit der rechten Maustaste auf Ihr Projekt. Gehen Sie zu Eigenschaften. Wähle Android. Stellen Sie sicher, dass Is Library aktiviert ist.

So verweisen Sie auf das Bibliotheksprojekt in Ihrem Android - Projekt

Klicken Sie mit der rechten Maustaste auf Ihr Projekt. Gehen Sie zu Eigenschaften. Wähle Android. Klicken Sie auf Hinzufügen. Durchsuchen und das Bibliotheksprojekt.

Zitat aus den Dokumenten

Ein Bibliotheksprojekt unterscheidet sich von einem Standardanwendungsprojekt Android dadurch, dass Sie es nicht direkt in eine eigene APK-Datei kompilieren und auf einem Gerät Android ausführen können. Ebenso können Sie das Bibliotheksprojekt nicht in eine eigenständige JAR-Datei exportieren, wie dies für eine echte Bibliothek der Fall wäre. Stattdessen müssen Sie die Bibliothek indirekt kompilieren, indem Sie auf die Bibliothek in der abhängigen Anwendung verweisen und diese Anwendung erstellen.

2
Raghunandan

Stand Android Studio v1.2, so einfach wie ein Kuchen. Bereits beantwortete Komplettlösung mit Screenshots auf dieser Link

1
Nishant.

Hier ist eine einfache Möglichkeit, dies mit ant zu tun, die Sie im Volley-Quellcode finden. Fügen Sie den folgenden Code zu custom_rules.xml hinzu und erstellen Sie ihn mit ant jar

<?xml version="1.0" encoding="UTF-8"?>
<project name="volley-rules" default="help">

  <!-- A rule to generate the JAR for inclusion in an Android
       application. Output file will be bin/volley.jar -->
  <target name="jar" depends="-compile">
    <jar destfile="bin/volley.jar"
         basedir="bin/classes" />
  </target>
</project>
1
schwiz

Mit Eclipse ADT v22.6.2 können Sie das Jar einfach exportieren, indem Sie auf Datei-> Exportieren-> Java-> Jar-Datei klicken, Verzeichnisse und Speicherort auswählen.

0
someUser