web-dev-qa-db-fra.com

Convertir un projet existant en projet de bibliothèque dans Android Studio

Comment puis-je convertir un projet Android existant en un projet de bibliothèque Android dans Android Studio? Dans Eclipse, c'est possible.

En fait, je souhaite convertir un ancien projet Android en un projet de bibliothèque Android afin de pouvoir utiliser le code existant de ce projet Android pour créer un nouveau Android projet avec des modifications mineures dans Android Studio.

61
vijay

Dans le module build.gradle fichier (pas le projet racine, si vous utilisez des modules!), remplacez simplement:

apply plugin: 'com.Android.application'
// or, if you're on an old version
apply plugin: 'Android' // note: this one is deprecated

...avec:

apply plugin: 'com.Android.library'
// or, if you're on an old version
apply plugin: 'Android-library' // note: this one is deprecated

Notez que récemment, 'Android' est devenu 'com.Android.application', tandis que 'Android-library' a été changé en 'com.Android.library'. Évitez d'utiliser les anciens noms dans les nouveaux projets.

Après avoir mis à jour votre build.gradle fichier, vous devez synchroniser le projet avec les fichiers Gradle (qui se trouve dans la barre d'outils), car ne pas le faire pourrait entraîner des erreurs et des problèmes de fonctionnement.

Android Studio mettra alors à jour certains fichiers pour indiquer que le module est désormais une bibliothèque; car cela sera ajouté dans votre fichier .iml:

<option name="LIBRARY_PROJECT" value="true" />

Comme vous le savez peut-être déjà, vous ne pourrez pas exécuter votre (maintenant) projet de bibliothèque - vous devrez l'inclure dans un projet d'application .

Si vous utilisez Android Studio 1.0 et que vous obtenez "Les projets de bibliothèque ne peuvent pas définir applicationId", assurez-vous que applicationId ne figure pas dans votre fichier de construction Gradle) .

87
Léo Lam

En regardant ce document http://tools.Android.com/tech-docs/new-build-system/user-guide#TOC-Multi-project-setup

Je pense que tout ce que vous avez à faire est d'ajouter ceci à votre fichier build.gradle,

Création d'un projet de bibliothèque

apply plugin: 'Android-library'

Depuis le lien

Création d'un projet de bibliothèque

Un projet de bibliothèque est très similaire à un projet Android Android avec quelques différences.

Étant donné que la création de bibliothèques est différente de la création d'applications, un plugin différent est utilisé. En interne, les deux plugins partagent la plupart du même code et ils sont tous deux fournis par le même pot com.Android.tools.build.gradle.

buildscript {
    repositories {
        mavenCentral()
    }

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

apply plugin: 'Android-library'

Android {
    compileSdkVersion 15
}
4
Ryan Heitner

ouvrez le projet dans l'Explorateur de fichiers, ouvrez project.properties et essayez de changer Android.library = true dans project.properties

0
chanakya

C'est une réponse tardive, mais j'ai essayé de faire la même chose. Aucun des éléments ci-dessus ne semble avoir fait le travail pour moi, mais j'ai trouvé que cela fonctionne:

Faites un clic droit sur le nom du projet -> Marquer le répertoire comme (en bas) -> Racine des sources

Je ne connais pas la différence entre la racine des ressources et la racine des sources, et un peu de google pour trouver la réponse, mais j'espère que c'est vrai. Je sais juste qu'une bibliothèque n'est pas censée construire une apk, et après avoir défini cette option, elle n'est pas en mesure de le faire, donc je suppose que cela fonctionne.

Si quelqu'un d'autre en sait plus que moi, dites-le!

0
craned

Si vous le faites avec la ligne de commande, comme le propose chanakya, vous devez le mettre à jour avec:

Android update lib-project \
--target <target_ID> \
--path path/to/your/project

voir: http://developer.Android.com/tools/projects/projects-cmdline.html#ReferencingLibraryProject

Cela fonctionne pour Eclipse, mais pas pour Android-studio depuis cette mise à jour du build.xml.

0
spe