J'ai essayé d'importer un projet (projLib) en tant que dépendance pour un autre projet (projAPK).
projAPK gradle a ceci:
dependencies {
compile project(':libs:NewsAPI')
compile project(':projLib')
}
mais quand je synchronise le gradle, cela donne cette erreur:
Erreur: Dépendance Android_2015: projLib: non spécifié sur le projet. ProjAPK se résout en une archive APK non prise en charge en tant que dépendance à la compilation. Fichier: /Users/myname/Documents/Development/Android_2015/libs/projAPK/build/outputs/apk/projLib-release-unsigned.apk
donc je suppose qu'il y a deux solutions à cela:
Le problème est que je ne trouvais pas comment faire cela. Ce serait génial si vous pouvez aider :)
Dans le fichier build.gradle de projLib, vous verrez une déclaration comme celle-ci:
apply plugin: 'com.Android.application'
qui indique à Gradle de le construire en tant qu’application, générant un APK. Si vous le changez en ceci:
apply plugin: 'com.Android.library'
il fonctionnera comme une bibliothèque, générant un AAR, et cela devrait fonctionner.
Si vous avez également besoin de projLib pour générer un fichier APK séparé, vous devrez procéder à une refactorisation pour extraire le code commun dont vous avez besoin dans un troisième module de bibliothèque et faire en sorte que les deux fichiers APK en dépendent.
Les bibliothèques ne sont pas autorisées à définir un applicationId
. Par conséquent, si vous voyez un message d'erreur à cet effet, supprimez-le du script de construction de la bibliothèque.
Dans le fichier de classement du module -
Remplacerapply plugin: 'com.Android.application'
avec apply plugin: 'com.Android.library'
Alors enleverapplicationId "xxx.xxx.xxxx"
Nettoyer et Construire
ajoutez simplement ces lignes au fichier library gradle
et supprimez les autres sections
apply plugin: 'com.Android.library'
Android {
compileSdkVersion 23
buildToolsVersion '23.0.2'
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.squareup.picasso:picasso:2.4.0'
compile 'com.google.code.gson:gson:2.2.4'
compile 'com.Android.support:appcompat-v7:23.1.1'
compile 'com.Android.support:gridlayout-v7:23.1.1'
,...
}