web-dev-qa-db-fra.com

Créer une Android bibliothèque de fichiers pour la distribution

Je connais des projets de bibliothèque Android), qui vous permettent de créer un projet de source partagée pouvant être inséré dans Android au besoin. Toutefois, cela nécessite la source soit disponible.

Je cherche un moyen de créer et de distribuer une bibliothèque à source fermée pouvant être utilisée dans d’autres Android projets comme un fichier JAR traditionnel. Cela nécessitera l’utilisation de Android, ce n’est donc pas un fichier JAR Vanilla-Java. FWIW, je n’ai pas besoin d’incorporer des ressources/présentations dans le fichier JAR.

J'ai vu http://andparcel.com/ mais cela ressemble à une solution de contournement et je préférerais utiliser quelque chose de "officiellement supporté" par Google. De plus, je dois m'assurer que le JAR que je crée est compatible avec l'ancienne/la nouvelle version du SDK Android (c'est-à-dire, j'ai besoin d'un moyen de définir la version de la plate-forme cible, etc.).

Les derniers outils Android permettent-ils la création/la consommation de fichiers binaires JAR? Pouvez-vous pointer une documentation sur la façon dont je peux le faire?

159
psychotik

Si vous créez un projet de bibliothèque Android sans aucune ressource, l'ADT (noté pour la première fois dans r16) créera un fichier .jar portant le même nom que le projet dans le dossier 'bin'.

49
Freddroid

Android ne fournit pas un type spécial d'Android-JAR. Mais ce que vous pouvez faire est d’ajouter un build.xml à votre projet et de construire le fichier JAR avec ant.

Mon build.xml ressemble à ceci:

<project name="MyAndroidLib" default="dist" basedir=".">
  <description>
This is my Android lib
  </description>
  <!-- set global properties for this build -->
  <property name="src" location="src" />
  <property name="bin" location="bin" />

  <target name="jar">
    <jar destfile="MyAndroidLib.jar" basedir="bin/classes/">
      <!-- replace 'com' by what ever you are using -->
      <!-- as first part of the package name -->
      <!-- e.g. de, org, ... -->
      <!-- the ** is important to include the directory recursively -->
      <include name="com/**" />
    </jar>
  </target>
</project>

Construisez le fichier JAR en exécutant ant jar dans le dossier principal de vos projets.

23
white_gecko

Vous pouvez créer un projet "normal" Java et importer à partir de là Android.jar. Ensuite, vous aurez accès à tous les composants du SDK. Vous pourrez ensuite exporter votre projet au format jar .. . et chargez-le à partir de votre Android app. Cela fonctionne très bien et cela semble un moyen simple et simple de le faire.

17
ferostar

allez simplement dans les propriétés du projet dont vous voulez faire jar.Cliquez sur Android tab. et cochez la bibliothèque Est. vous pouvez maintenant voir le fichier .jar dans le dossier bin.use où vous voulez utiliser.

15
Dhrupal

La seule solution "officiellement prise en charge" par Google est le projet Library. Elle nécessite la distribution du code source. Vous pouvez créer un fichier JAR de la manière habituelle, mais vous ne pouvez pas y inclure ou référencer de ressources.

Malheureusement, j'estime qu'il n'est également pas possible d'inclure un fichier JAR empaqueté dans un projet Library, afin de contourner les exigences du code source.

10
Jeff Gilfelt

Dans la dernière version de Android Studio 1.2, la création de la bibliothèque JAR a été rendue aussi simple que pointer et cliquer.

Étapes à suivre :

  • Goto File -> New -> New Module enter image description here
  • Sélectionnez "Java Library" à la fin de la liste des options. enter image description here
  • Entrez le nom de la bibliothèque de jar et le nom de la classe et cliquez sur le bouton de fin enter image description here
  • C'est ça !

L'étape suivante consiste à ajouter votre bibliothèque de bacs en tant que dépendance dans votre application. Aussi simple que ça

  • Goto File -> Project Structure -> Sélectionnez 'app' -> Sélectionnez 'Dependency'
  • Sélectionnez le '+' en bas -> Sélectionnez 'Module Dependency' enter image description here
  • Sélectionnez le module jar lib que vous venez de créer ci-dessus enter image description hereenter image description here
  • Sélectionnez Ok et c'est tout!

.... ou vous pouvez simplement ajouter la ligne ci-dessous à votre fichier de graduation d'application

dependencies {
      compile fileTree(dir: 'libs', include: ['*.jar']) // Default Gradle Task, should be already present
      compile 'com.Android.support:appcompat-v7:21.0.3' // Default Gradle Task, should be already present

      compile project(':nameOfYourJarLibraryModule') // This is your jar library module
 }

Google fait la promotion de Android Archive (AAR), même si le fichier JAR pris en charge est ramené à Android studio.Pour connaître la différence entre AAR et JAR - ce lien

8
Nishant.

Essayez ceci: cela fonctionne

1) faites de votre projet de bibliothèque un projet normal en désélectionnant le drapeau IsLibrary.

2) Exécutez votre projet en tant que Android. (Aucune erreur ne sera affichée)

3) vous trouverez un fichier .jar dans le dossier bin avec .apk.

4) Donnez-vous .jar qui veulent utiliser votre bibliothèque.

5) Dites-leur d'importer simplement le fichier JAR externe dans le chemin de génération.

cela fonctionnera bien avec toutes les ressources. bonne chance.

6
Aayush Rana

L’ADT crée un dossier bin qui contient tous les fichiers de classe de tous les fichiers et répertoires sources correspondants de votre projet. Vous pouvez utiliser la commande jar pour créer une archive jar contenant ces fichiers et répertoires de classe et présumable de votre bibliothèque. Les fichiers de classe au niveau de plate-forme ne seraient ciblés que pour le niveau actuel de la construction du projet. Vous auriez besoin d'un fichier JAR différent pour chaque niveau de plate-forme. Cependant, l’avantage de cela est que le fichier R.class est inclus dans l’arborescence de répertoires du projet et que vous avez donc accès à ses ressources. Je ne sais pas si c'est la manière officielle de faire les choses dans Android, mais cela a fonctionné pour moi.

1
David Evans

.jar est juste un fichier .Zip qui contient un fichier .class (vous pouvez essayer de changer l’extension d’un fichier .jar en .Zip, puis de voir le résultat). Vous pouvez facilement créer n’importe quelle bibliothèque .jar à quelque fin que ce soit en compressant le fichier .class.

0
Renzokuken

Ouvrir le fichier project.properties entrer la valeur Android.library = true

enregistrer le fichier, à partir du menu Eclipse pour le projet, sélectionnez "Construire automatiquement", puis "Nettoyer". Le nouveau fichier JAR est créé sous le bac

0
Pana Technica

Dans notre projet, nous créons apk (en utilisant apkbuilder) qui est installé dans/system/framework et a ajouté cet apk dans le classpath par défaut. Pour compiler les applications utilisant le fichier jar, nous créons un fichier jar (en utilisant le fichier jar c).

Remarque: nous n'avons aucune ressource dans la bibliothèque.

0
Karan