Erreur: (23, 17) Échec de la résolution: junit: junit: 4.12

133

Pourquoi chaque fois que je crée un nouveau projet dans Android Studio, il arrive toujours avec:

Erreur: (23, 17) Échec de la résolution: junit: junit: 4.12?

Lorsque je supprime des testCompile 'junit:junit:4.12'dépendances, ce n'est plus un problème.

build.gradle

apply plugin: 'com.android.application'

android {
    compileSdkVersion 23
    buildToolsVersion "23.0.1"

    defaultConfig {
        applicationId "com.okedroid.myapplication"
        minSdkVersion 17
        targetSdkVersion 23
        versionCode 1
        versionName "1.0"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    testCompile 'junit:junit:4.12'
    compile 'com.android.support:appcompat-v7:23.0.1'
}
fathurzero
la source
Il semble que le fichier jar ne soit pas dans votre référentiel.
Jens
comment le gérer? J'ai installé le JDK 7 et j'ai également ajouté le chemin dans les variables d'environnement
fathurzero
Quel référentiel utilisez-vous pour gradle.
Jens
1
On dirait que les pots sont présents jcenter.bintray.com/junit/junit/4.12
Jens
1
Vérifiez ma nouvelle réponse: stackoverflow.com/a/38151747/5733853
VahidHoseini

Réponses:

124

J'ai eu le même problème. Résolu en ajoutant l'URL du référentiel manquant dans le build.gradlefichier:

android {
    [...]
    repositories {
        maven { url 'http://repo1.maven.org/maven2' }
    }
    [...]
}

C'est tout.

mdew
la source
Cela a définitivement résolu le problème pour moi, donc au moins je peux gradle-sync maintenant
révolutionnaire
16
quelle en était la cause?
Raulp
Cela a résolu le problème, mais qu'est-ce que c'est maven?
Sithu
1
Il doit être ajouté ci buildTypes- dessus , sinon l'erreur buildTypes ne peut pas être appliquée à groovy.lang.Closure se produira.
Sithu
Et quoi jcenter()? Est-il nécessaire d'éliminer jcenter()des référentiels?
Hosein Aqajani
34

Supprimez simplement le "testCompile 'junit: junit: 4.12'" du fichier build.gradle:

dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
testCompile 'junit:junit:4.12'//remove this line and sync again... worked for me

androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
    exclude group: 'com.android.support', module: 'support-annotations'}) //if available, also delete these two lines

compile 'com.android.support:appcompat-v7:23.0.1'
 }

travaillé pour moi et je suis heureux! :)

N'oubliez pas que ce n'est pas la vraie réponse à cette question. J'ai mentionné cela car cela fonctionne lorsque vous supprimez les lignes ci-dessus.

Naveed Jamali
la source
24

Allez dans Fichier -> Structure du projet. La fenêtre suivante s'ouvrira:

entrez la description de l'image ici

De là:

  1. supprimez la bibliothèque junit (sélectionnez junit et appuyez sur le bouton "-" ci-dessous) et
  2. ajoutez-le à nouveau (sélectionnez le bouton "+" ci-dessous, sélectionnez "librairie dep.", recherchez "junit", appuyez sur OK). Appuyez sur OK pour appliquer les modifications. Après environ 30 secondes, votre synchronisation des gradins devrait fonctionner correctement.

J'espère que cela fonctionne pour vous aussi: D

Hasaan Ali
la source
3
J'ai essayé cela, mais quand je suis allé ajouter du junit, ce n'était pas là ... wtf
Brew Dain
Pour ajouter manuellement junit au projet, ouvrez le fichier "build.gradle (Module: app)" sur le côté gauche. Ajoutez cette ligne: testCompile 'junit: junit: 4.12' à la fin du fichier n'importe où entre le bloc de dépendances et enfin synchronisez le projet en allant à TOOLS> ANDROID> SYNC PROJECT WITH GRADLE FILES
Hasaan Ali
N'a pas travaillé pour moi. après avoir à nouveau ajouté junit4.12, il a donné la même erreur que OP.
user13107
15

Il n'est pas possible d'obtenir la bibliothèque junit.

repositories {
        maven { url 'http://repo1.maven.org/maven2' }
    }

Après avoir ajouté la ligne ci-dessus à l'intérieur du bloc Android dans le fichier build.gradle, le problème a été résolu. Cela peut être dû au fait que votre studio Android ne dispose pas de bibliothèque junit.

Mona
la source
15

ajoutez un référentiel dans votre fichier build.gradle

repositories {
    maven { url 'http://repo1.maven.org/maven2' }
}
Gaurav
la source
13

Votre note est probablement incomplète, je vous recommande d'ajouter ce qui suit

android{
    repositories {
    maven { url 'http://repo1.maven.org/maven2' }
}

mais dans certains cas, cela ne fonctionnera pas, vous pouvez le supprimer complètement de vos dépendances dans votre gradle.

Je pense que ce sera OK si vous réinstallez le studio Android avec la condition de suppression du dossier Gradle qui se trouve dans le dossier utilisateur .gradle

VahidHoseini
la source
8

Voici ce que j'ai fait pour résoudre le même problème. Je suis derrière un pare-feu, qui est le même problème que le vôtre, je suppose. J'avais donc essayé de supprimer le

testCompile 'junit:junit:4.12' line 

mais cela n'a pas fonctionné pour moi. J'ai essayé d'ajouter des lignes de code ci-dessous:

repositories {
    maven { url 'http://repo1.maven.org/maven2' }
}

Même cela n'a pas fonctionné pour moi.

J'ai essayé de supprimer (-) et de lire (+) Junit4.12 des dépendances de la bibliothèque sous Paramètres du module. Cela n'a toujours pas fonctionné pour moi.

Projet de synchronisation et de reconstruction essayé plusieurs fois. Ne fonctionnait toujours pas pour moi.

Enfin, ce que j'ai fait a été de télécharger manuellement le fichier Junit4.12.jar à partir du site Web mvnrepository. J'ai mis ce fichier jar dans l'espace de travail Androids sous le dossier Projet dans le dossier libs. Ensuite, allez dans Paramètres du module> Onglet Dépendances> (+)> Dépendance de fichier> sous la fenêtre de chemin de Sleect, développez le dossier 'libs' et vous trouverez le fichier Jar que vous avez copié à l'intérieur. Sélectionnez le fichier et cliquez sur 'OK'. Supprimez maintenant la version précédente de junit4.12 de la liste des dépendances.

Vous devez avoir une entrée "libs\junit-4.12.jar"dans la liste des dépendances. Cliquez maintenant sur «OK».

Maintenant, Gradle reconstruira le projet et vous devriez être prêt à partir.

J'espère que cela t'aides!

Murtuza K
la source
Je viens d'invalider le cache et de redémarrer Android Studio.
Mohammedsalim Shivani
6

J'essaierai toujours, mais la seule chose qui m'aide à résoudre le problème était de supprimer la ligne

testCompile 'junit:junit:4.12'

à partir de l'application gradel.

Ortal D
la source
5

Cela se produit parce que HTTPS est bloqué par Proxy. Essayez de changer de jcenter par défaut (qui utilise HTTPS) en HTTP.

Avant

repositories {
     jcenter()
}

Après

repositories {
    jcenter {
        //Default one is HTTPS
        url "http://jcenter.bintray.com/"
    }
}

Répétez l'étape ci-dessus pour tous les projets.

allprojects {
  repositories {
    jcenter {
        url "http://jcenter.bintray.com/"
    }
  }
}
jafarmlp
la source
Ne fonctionne pas avec un proxy, le trafic HTTP fonctionne et le trafic HTTPS est interdit.
Diti
Hmm .. C'est ce que j'ai essayé d'expliquer dans mon post. Par défaut, il utilise HTTPS qui est bloqué. Voir avant et après
jafarmlp
4

J'ai reçu cette erreur après avoir créé un nouveau projet. Dans le fichier build.gradle, j'avais ceci:

jcenter()

Je le change comme suit et l'erreur a disparu:

jcenter {
    url "http://jcenter.bintray.com/"
}

Je pense que c'est parce que je suis derrière un pare-feu et que je spécifie l'URL comme ça la change de https à http

Al Lelopath
la source
1
Merci beaucoup . Ce correctif m'a aidé
Android_programmer_office
4

Vous êtes probablement derrière le proxy. Cela m'est arrivé, j'ai utilisé mon projet de reconstruction de modem mobile (pas de proxy) et l'erreur a disparu. Revenir à la connexion d'origine (avec proxy) et reconstruire sans erreur.

Asem Daaboul
la source
J'avais également besoin de spécifier un proxy pour gradle, mais je ne voulais pas ajouter mes informations de connexion à chaque projet. La réponse était d'ajouter un gradle.properties à mon répertoire d'utilisateurs. Plus d'informations dans cette réponse - stackoverflow.com/a/26524019/542629 .
marche Objectif le
4

Utilisez-vous un proxy ? Si tel est le cas, le problème peut provenir d'une configuration réseau manquante pour https dans votre gradle.propertiesfichier.

AndroidStudio place automatiquement vos paramètres de proxy par défaut dans un gradle.propertiesfichier dans votre projet, mais uniquement pour http et oublie https.

Donc, fondamentalement, votre gradle.propertiesfichier doit contenir à la fois la configuration http et https:

systemProp.http.proxyPassword=xxx
systemProp.http.proxyHost=xxx
systemProp.http.nonProxyHosts=xxx
systemProp.http.proxyUser=xxx
systemProp.http.proxyPort=xxx

systemProp.https.proxyPassword=xxx
systemProp.https.proxyHost=xxx
systemProp.https.nonProxyHosts=xxx
systemProp.https.proxyUser=xxx
systemProp.https.proxyPort=xxx
Štarke
la source
3

La plupart du temps, ce problème survient lorsque vous mettez à jour votre SDK, au moment de la création du projet, la génération Gradle échoue. Si vous ajoutez les Maven et jcenter dépôts à votre build.gradle (Module: app) votre problème sera résolu.

repositories {
    maven { url 'http://repo1.maven.org/maven2' }
    jcenter { url "http://jcenter.bintray.com/" }
}

Ce sont les deux lignes que vous devez ajouter après

apply plugin: 'com.android.application' 

Voici à quoi ressemble votre code après avoir ajouté ces deux lignes

apply plugin: 'com.android.application'

 repositories {
        maven { url 'http://repo1.maven.org/maven2' }
        jcenter { url "http://jcenter.bintray.com/" }
    }

android {
    compileSdkVersion 23
    buildToolsVersion "23.0.1"

    defaultConfig {
        applicationId "com.okedroid.myapplication"
        minSdkVersion 17
        targetSdkVersion 23
        versionCode 1
        versionName "1.0"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}
saibaba vali
la source
3

L'erreur est due à des fichiers JAR manquants. Ma solution simple consiste simplement à copier tous les fichiers qui ne se résolvent pas dans le répertoire C: \ Program Files \ Android \ Android Studio \ gradle \ m2repository ... (votre chemin de fichier peut être différent). J'ai contourné 6 dépendances qui ne peuvent pas être résolues, junit est l'une d'entre elles et les autres sont com et org et javax. Comme je suis derrière un pare-feu, même si j'ai ajouté le code du référentiel, Android Studio ne semble pas y accéder. Je suis allé au référentiel maven et j'ai téléchargé tous les fichiers qui ne seront pas résolus. Problème résolu et la synchronisation Gradle sans erreur. Mais je suis un débutant certifié avec seulement 1 jour d'expérience, donc je ne le fais pas si c'est la bonne façon de le faire.

Exemple d'erreur: impossible de résoudre com: squareup: javawriter: 2.1.1

Étape 1: J'ai créé un chemin C: \ Program Files \ Android \ Android Studio \ gradle \ m2repository \ com \ squareup \ javawriter \ 2.1.1 \

Étape 2: J'ai téléchargé tous les fichiers jar du référentiel maven: http://repo1.maven.org/maven2/com/squareup/javawriter/2.1.1/

Étape 3: J'ai téléchargé manuellement tous les fichiers .jar de ce répertoire

Étape 4: Je les ai copiés dans C: \ Program Files \ Android \ Android Studio \ gradle \ m2repository \ com \ squareup \ javawriter \ 2.1.1 \

J'ai répété cela à tous les fichiers qui n'ont pas été résolus, y compris le junit.

Pour junit, voici le répertoire que j'ai créé: C: \ Program Files \ Android \ Android Studio \ gradle \ m2repository \ junit \ junit \ 4.12 puis j'ai copié le junit-4.12.jar dans ce répertoire et l'erreur junit a disparu.

Roy Selim
la source
3
  1. Assurez-vous que vous n'êtes pas derrière un proxy!
  2. Si vous avez configuré votre Android Strudio pour qu'il fonctionne avec un proxy, assurez-vous de désactiver cette option dans les préférences d'Android Studio.
  3. Accédez à gradle.properties sous la vue Android dans Android Studio et supprimez toutes les configurations de proxy
  4. Synchronisez votre note maintenant
  5. Profitez du codage!
Catluc
la source
2

CHANGEZ votre build.gradle comme avec ceci, fonctionne bien pour moi:

apply plugin: 'com.android.application'

android {
    compileSdkVersion 23
    buildToolsVersion "22.0.1"
    repositories {
        maven { url 'http://repo1.maven.org/maven2' }
    }
    defaultConfig {
        applicationId "YOUR PACKAGE NAME"
        minSdkVersion 15
        targetSdkVersion 23
        versionCode 1
        versionName "1.0"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    testCompile 'junit:junit:4.12'
    compile 'com.android.support:appcompat-v7:23.0.0'
}

ajoutée

    repositories {
        maven { url 'http://repo1.maven.org/maven2' }
    }

à android


la source
2

Allez dans File -> Project Structure -> dependency Vous y trouverez -> junit: unit: 4.12

Sur le côté droit .. sélectionnez compiler dans la liste déroulante. Simple .. c'est fait.

Image de référence: http://i.stack.imgur.com/5WvS3.png

VV des rouges

Vaisakh Venugopal
la source
2

Mon installation d'Android Studio est complètement hors ligne. Pour résoudre ce genre de problèmes, j'ai utilisé le Process Monitor. Il a montré que quelques fichiers manquent dans "Android Studio \ gradle \ m2repository". J'ai téléchargé tous les fichiers de

  1. http://repo1.maven.org/maven2/junit/junit/4.12/
  2. http://repo1.maven.org/maven2/org/hamcrest/hamcrest-core/
  3. repo1.maven.org/maven2/org/hamcrest/hamcrest-parent/1.3/ (je ne peux poster que deux liens ... ;-))

et copié ces fichiers dans "Android Studio \ gradle \ m2repository". Vous devez créer la structure sous "m2repository" car elle se trouve sous "maven2". Il y a peut-être plus de fichiers manquants, mais pour le moment, au moins la construction de Gradle est terminée sans erreurs.

Tasko
la source
dans toutes ces réponses, c'était la seule qui résolvait réellement mon problème (je les ai toutes testées!). bien sûr, pour moi, il fallait ajouter plus de référentiels, mais la solution était la même. le seul qui n'a pas fonctionné était "javax.annotation-api / 1.2" qui, après quelques tests, j'ai dû le supprimer des dépendances. merci @Tasko
Lord Sepid
2

J'avais le même problème.

  • 1 option: téléchargez junit 4.12.jar et copiez-le dans votre dossier lib et redémarrez android studio. Bénéficiez de ne pas avoir à créer de nouveau projet

  • Option 2: Créez un nouveau projet ayant une connexion Internet et copiez tout le code java et XML dans le projet nouvellement créé. Avantage que ce problème sera résolu de manière permanente

Akash Jaiswal
la source
1

Supprimer la ligne testCompile 'junit:junit:4.12'

dependencies {
  compile fileTree(dir: 'libs', include: ['*.jar'])
  compile 'com.android.support:appcompat-v7:23.0.1'
 }

Après cela, synchronisez à nouveau le projet.

Muhammad Salman
la source
1
dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
       compile 'com.android.support:appcompat-v7:23.1.1'
}

Remarque: Supprimer la ligne testCompile 'junit: junit: 4.12' a été résolu mon problème.

hasan sabbir
la source
1

Essaye ça:

dependencies {
    compile fileTree(include: ['*.jar'], dir: 'libs')
    //testCompile 'junit:junit:4.12'
    compile 'com.android.support:appcompat-v7:23.3.0'
    compile 'com.android.support:design:23.3.0'
    compile 'com.google.code.gson:gson:2.2.4'
}
Abdullah Al Hasan
la source
1

Si vous êtes derrière un proxy. Android Studio ajoutera un proxy pour http à Gradle, mais pas pour https. Ajouter des paramètres de proxy pour https à gradle.properties

KennyXu
la source
1

si vous rencontrez ce problème, vous pouvez le résoudre complètement en modifiant:

build.gradle (projet: ...)

remplacer ceci

    buildscript {
    repositories {
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:2.0.0'

        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
}

allprojects {
    repositories {
        mavenCentral()

    }
}

task clean(type: Delete) {
    delete rootProject.buildDir
}
VahidHoseini
la source
1

J'ai eu le même problème, mais avec un autre problème.

Mon autre problème était que la version Gradle était trop lente!

J'ai résolu mon problème en faisant ceci

Si vous aimez mdew, vous devez le faire chaque fois que vous créez votre projet pour le faire

Donc, si vous souhaitez définir l'option par défaut sur maven

Faites ceci:

Allez dans le dossier:

C:\Program Files\Android\Android Studio\plugins\android\lib\templates\gradle-projects\NewAndroidProject\root

Ensuite, ouvrez le build.gradle.ftlfichier avec notepad ++ ou notepad et remplacez tout jcenter()par mavenCentral().

EDIT: Pourquoi sa baisse a-t-elle voté? tu n'aimes pas ça?

Afficher un nom
la source
1

Je n'ai pas pu comprendre pourquoi Android Studio ne se synchronisait pas avec Gradle. Il s'est avéré qu'il n'aimait pas mon VPN, alors surveillez-le!

Ben
la source
1

Allez dans Aller dans "Fichier" -> "Structure du projet" -> "App" Dans l'onglet "Propriétés". Dans le champ "Library Repository" , mettez ' http://repo1.maven.org/maven2 ' puis appuyez sur Ok. C'était réglé comme ça pour moi. Maintenant, le projet est en cours de compilation.

MM
la source
1

Connectez-vous simplement à Internet, démarrez Android Studio et ouvrez votre projet. Pendant que Gradle Sync, il téléchargera les dépendances d'Internet (tous les fichiers JAR). Cela a résolu le problème pour moi. Pas d'édition dans le fichier Gradle, tout a été fait automatiquement par Android Studio. Utilisation d'Android Studio 2.2 :)

N'oubliez pas non plus d'installer Java JDK 1.x (7 ou 8 tout fonctionne bien).

Rupanshu Raman
la source
1

J'adorerais suggérer la solution, qui convient parfaitement à ma situation:

  • au début, assurez-vous d'ajouter

    repositories {
        maven { url 'http://repo1.maven.org/maven2' }
    }

    au fichier build.gradle au niveau du projet à l'intérieur du buildscript {}bloc

  • puis ajouter

    allprojects {
        repositories {
            maven { url 'http://repo1.maven.org/maven2' }
        }

    au fichier build.gradle au niveau du projet

  • le point suivant est d'ajouter

    repositories {
        jcenter()
        mavenCentral()
    }

    au niveau du module build-gradle à l'intérieur buildTypes{ }

iamtodor
la source
1

Cherchez de nombreuses réponses mais rien ne fonctionne. Heureusement avait trouvé la solution facile. Pas besoin de commenter junit4.12 ou de le supprimer. Le problème est ici:

- androidTestCompile files('libs/junit-4.12.jar')

Cette partie nous montre le chemin pour rechercher le fichier dans la bibliothèque de votre projet. Je ne sais pas pourquoi mais pour une raison quelconque par défaut, il est vide. Dans mon cas, le chemin est:

C:\Users\arzakhar\AndroidStudioProjects\MyApp\app\libs

Bien sûr, vous pouvez supprimer cette ligne dans le code, build.grandle(Module.app)mais vous en aurez peut-être besoin plus tard. Voici la solution:

1 - téléchargez junit-4.12.jar ou copiez-le à partir de votre dossier Android Studio, normalement il devrait y être. Dans mon cas, c'était ici:

C:\Program Files\Android\Android Studio\lib

vers le répertoire mentionné ci-dessus (vers votre projet)

2 - Supprimer et ajouter

ici, vous devez rentrer la racine de votre junit-4.12.jar

3 - reconstruire

4 - Travaillez dur

Arthur Zakharov
la source