Je ne parviens pas à compiler mon application avec Android Studio (0.1.5). L'application utilise 2 bibliothèques que j'ai incluses comme suit:
settings.gradle
include ':myapp',':library',':Android-ColorPickerPreference'
build.gradle
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'com.Android.tools.build:gradle:0.4'
}
}
apply plugin: 'Android'
dependencies {
compile files('libs/Android-support-v4.jar')
compile project(':library')
compile project(':Android-ColorPickerPreference')
}
Android {
compileSdkVersion 17
buildToolsVersion "17.0.0"
defaultConfig {
minSdkVersion 7
targetSdkVersion 16
}
}
Lors de la compilation, je reçois ce message:
Gradle: A problem occurred configuring project ':myapp'.
> Failed to notify project evaluation listener.
> Configuration with name 'default' not found.
Pourriez-vous m'aider avec ce message? Merci!
Dans mon cas, après avoir compilé avec gradle tasks --info
, le journal était là:
Évaluation du projet ': bibliothèques: VolleyLibrary' à l'aide d'un fichier de construction vide.
Donc, il n'a pas réussi à trouver le fichier build.gradle de la bibliothèque. Reason est la structure du dossier.
C'était
-libraries
--volley
---VolleyLibrary
C'est supposé être
-libraries
--VolleyLibrary
J'ai oublié de tirer tous les sous-modules. Donc mon
compile project(':something')
ne pouvait pas être résolu.
git submodule update --init
compile fileTree(dir: '//you libraries location//', include: ['Android-ColorPickerPreference'])
Utilisez la ligne ci-dessus dans le fichier gradé de votre application au lieu de
compile project(':Android-ColorPickerPreference')
J'espère que ça aide
La procédure suivante a résolu mon problème:
Ajouter le script suivant
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'com.Android.tools.build:gradle:0.6.+'
}
}
apply plugin: 'Android-library'
repositories {
mavenCentral()
}
Android {
compileSdkVersion 18
buildToolsVersion "18.1.0"
defaultConfig {
minSdkVersion 10
targetSdkVersion 18
}
sourceSets {
main {
manifest.srcFile 'AndroidManifest.xml'
Java.srcDirs = ['src']
resources.srcDirs = ['src']
aidl.srcDirs = ['src']
renderscript.srcDirs = ['src']
res.srcDirs = ['res']
assets.srcDirs = ['assets']
}
}
}
include ':yourModuleName'
dans votre settings.gradleJ'ai également fait face à cette erreur - j'ai oublié de créer le script build.gradle pour le projet de bibliothèque.
Encore une autre cause - j'essayais d'inclure un module dans settings.gradle en utilisant
include ':MyModule'
project(':MyModule').projectDir = new File(settingsDir, '../../MyModule')
Le seul problème était que je venais d’importer le module d’Eclipse et que j’avais oublié de déplacer le répertoire en dehors de mon projet d’application, c’est-à-dire que le chemin '../../MyModule'
n’existait pas.
Ma solution consiste simplement à supprimer une ligne du fichier settings.gradle, qui représente un module qui n'existe pas:
include ':somesdk'
et aussi supprimer la ligne correspondante du build.gradle du projet principal:
compile project(':somesdk')
J'ai eu un problème de sous-module Git lors de l'obtention de cette erreur. Essayez d’exécuter gradle tasks --info
pour une description plus détaillée du problème. J'ai d'abord utilisé gradle tasks --debug
, ce qui n'était pas aussi utile que --info
.
Supposons que vous souhaitiez ajouter une bibliothèque (par exemple, MyLib) à votre projet. Vous devez suivre ces étapes:
include ':MyPrj', 'Libraries:MyLib'
. Note: Le répertoire actuel de cette instruction include est votre dossier de projet principal. Si vous collez votre projet dans un dossier, vous devez mentionner son adresse par rapport au répertoire principal du projet. Dans mon cas, je colle MyLib dans le dossier Libraries. Ce nom Bibliothèques n'est pas un mot clé et vous pouvez choisir un autre nom.+
puis choisissez dépendance de module et il y a vos bibliothèques et vous pouvez les sélectionner comme vous voulezJ'espère que ça aide
Dans mon cas, j'utilisais des fichiers Gradle qui fonctionnent sous Windows mais ont échoué sous Linux. Les include ':SomeProject'
et compile project(':SomeProject')
étaient sensibles à la casse et n'ont pas été trouvés.
Pour moi, il manquait un dossier qui a été déclaré sous settings.gradle.
À première vue, tout semble aller pour le mieux, mais certains ont trouvé une réponse qui pourrait être utile: https://stackoverflow.com/a/16905808/7944
Même l'auteur de la réponse d'origine ne semble pas très confiant, mais cela vaut la peine de faire un suivi. De plus, vous n'avez rien dit sur la structure de votre répertoire et je suppose donc que c'est ennuyeux, mais je ne peux pas le savoir avec certitude.
J'ai résolu ce problème en corrigeant certains chemins dans settings.gradle comme indiqué ci-dessous:
include ':project-external-module'
project(':project-external-module').projectDir = file('/project/wrong/path')
J'intégrais un module externe à mon projet et je n'avais pas le bon chemin.
Une autre cause potentielle de cette erreur précise: j'ai trouvé que cette erreur avait été résolue en commentant des bibliothèques inutilisées dans la section des dépendances de build.gradle. Assurez-vous que ces chemins et tous sont corrects.
Je regarderais de près votre entrée du projet de compilation (': Android-ColorPickerPreference') dans le build.gradle - essayez de commenter le code associé et cette ligne dans le fichier build.gradle et voyez si cela compile - puis continuez à partir du problème de chemin ou de bibliothèque.
J'ai eu le même problème et j'ai trouvé un moyen très simple d'ajouter une bibliothèque au projet.
Désormais, dans votre module "app", vous pouvez utiliser les classes de ce fichier JAR. Il sera alors en mesure de localiser et d’ajouter automatiquement les déclarations "import" et de les compiler sans problème. Le seul problème est peut-être qu'il ajoute une dépendance avec un chemin absolu tel que:
compile files('/home/user/proj/theproj/libs/thelib-1.2.3.jar')
dans votre "app/build.gradle".
J'espère que ça t'as aidé!
Dans mon cas, j'ai reçu cette erreur lorsque j'ai mal orthographié le nom du module de la bibliothèque (dépendance) dans le fichier build.gradle
.
Pensez donc à vérifier si le nom du module est correct.
build.gradle
dependencies {
compile project(':module-name-of-the-library')
}
Aussi ... vérifiez si vous avez les fichiers de module dans votre projet.
Par exemple, j'ai une application qui utilise le module Volley. Pendant mes études sur le développement de Android, j'ai accidentellement supprimé les fichiers qui se trouvaient dans le répertoire "volley".
~/git/Sandbox/Android/HelloWorld/volley $ ll
total 8
drwxrwxr-x 2 ivanleon ivanleon 4096 Jun 16 22:26 ./
drwxrwxr-x 6 ivanleon ivanleon 4096 Jun 17 01:51 ../
Je viens de cloner le projet (voir ci-dessous) et puis, j'ai fait la synchronisation du projet à Android Studio (Outils> Android> Synchroniser un projet avec des fichiers Gradle), et la construction de Gradle s'est terminée normalement (Console Gradle: coin inférieur droit de Android Studio) ;).
~/git/Sandbox/Android/HelloWorld/volley $ git clone https://Android.googlesource.com/platform/frameworks/volley
Cloning into 'volley'...
remote: Counting objects: 164, done
remote: Finding sources: 100% (164/164)
remote: Total 3222 (delta 307), reused 3222 (delta 307)
Receiving objects: 100% (3222/3222), 1.22 MiB | 114.00 KiB/s, done.
Resolving deltas: 100% (307/307), done.
Checking connectivity... done.
~/git/Sandbox/Android/AndroidGetJSON $ ls volley
Android.mk build build.xml pom.xml
proguard-project.txt src bintray.gradle build.gradle
custom_rules.xml proguard.cfg rules.gradle volley.iml
J'ai récemment rencontré cette erreur lorsque j'ai référencé un projet initié via un sous-module git.
J'ai fini par découvrir que le fichier racine build.gradle
du sous-module (un projet Java) n'avait pas le plug-in Java appliqué au niveau racine.
Il n'y avait que
apply plugin: 'idea'
J'ai ajouté le plugin Java:
apply plugin: 'idea'
apply plugin: 'Java'
Une fois que j'ai appliqué le plug-in Java, le message "défaut introuvable" a disparu et la construction a réussi.
J'ai eu ce problème lorsque j'ai collé manuellement google-play-services_lib dans mon projet. De toute évidence, les services de jeu ne contenaient pas de fichier build.gradle. La solution, ai-je appris, consiste à insérer cette dépendance dans le fichier build.gradle de mon projet (au lieu de copier en mode copie le répertoire play-services):
compile 'com.google.Android.gms:play-services:4.0.+'
Quand j'importais ma bibliothèque manuellement, j'avais le même problème. J'ai essayé d'ajouter ma bibliothèque avec le module fichier> import et cela a résolu mon problème.
Cela se produit lorsque vous compilez un dossier/projet importé ou copié en tant que module dans un dossier de bibliothèques. Ce problème se posait lorsque je n'incluais pas le fichier build.gradle
. quand j'ai ajouté le fichier, tout s'est très bien passé.
J'ai également rencontré le même problème et le problème a été résolu en modifiant un indicateur (gradle.ext.set ("allowLocalEdits", true)) en false dans settings.xml.
Pour moi, l'une des bibliothèques dépendantes n'existe pas dans le chemin correct, mais le message d'erreur ne pointe pas correctement cette bibliothèque.
Par exemple, ce que j'ai manqué, c’est :library-3
mais l’erreur jette à :library-1
.
mauvaise qualité.
Votre build.gradle pour le module/bibliothèque pourrait être aussi simple que:
apply plugin: 'Java'
sourceCompatibility = JavaVersion.VERSION_1_7
targetCompatibility = JavaVersion.VERSION_1_7
Si votre module est juste une collection de classes .Java POJO.
Si ce sont des classes de modèle/entité et que vous utilisez des annotations et que vous avez des dépendances, vous pouvez les ajouter dans:
apply plugin: 'Java'
sourceCompatibility = JavaVersion.VERSION_1_7
targetCompatibility = JavaVersion.VERSION_1_7
repositories {
mavenCentral()
}
dependencies {
compile 'com.j256.ormlite:ormlite-core:4.48'
compile 'com.j256.ormlite:ormlite-Android:4.48'
compile 'com.j256.ormlite:ormlite-jdbc:4.48'
}
Pour moi, il s’est avéré qu’il s’agissait d’un lien symbolique relatif (au projet référencé) qui ne pouvait pas être utilisé par grade. (Je faisais référence à une bibliothèque). C’est un cas d’Edge assez edgy, mais peut-être que ça aidera quelqu'un dans le futur.
Je l'ai résolu en mettant un lien symbolique absolu.
Avant ln -s ../library
après ln -s /the/full/path/to/the/library