Errore: (23, 17) Impossibile risolvere: junit: junit: 4.12


133

Perché ogni volta che creo un nuovo progetto in Android Studio, viene sempre fuori:

Errore: (23, 17) Impossibile risolvere: junit: junit: 4.12?

Quando rimuovo le testCompile 'junit:junit:4.12'dipendenze non è più un problema.

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'
}

Sembra che tu abbia il vaso non nel tuo repository.
Jens,

come gestirlo? Ho installato JDK 7 e ho anche aggiunto il percorso nelle variabili di ambiente
fathurzero,

Quale repository usi per gradle.
Jens,

1
Sembra che i barattoli siano presenti jcenter.bintray.com/junit/junit/4.12
Jens

1
Controllare la mia nuova risposta: stackoverflow.com/a/38151747/5733853
VahidHoseini

Risposte:


124

Ho avuto lo stesso problema. Risolto aggiungendo l'URL per il repository mancante nel build.gradlefile:

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

Questo è tutto.


Ciò ha sicuramente risolto il problema per me, quindi almeno ora posso effettuare la sincronizzazione graduale
rivoluzionario

16
qual è stata la causa principale di questo?
Raulp,

Questo ha risolto il problema, ma cos'è maven?
Sithu,

1
Dovrebbe essere aggiunto sopra buildTypes, altrimenti non sarà possibile applicare l'errore buildTypes a groovy.lang.Closure .
Sithu,

Che dire jcenter()? È necessario eliminare jcenter()dai repository?
Hosein Aqajani,

34

Rimuovi semplicemente "testCompile 'junit: junit: 4.12'" dal file 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'
 }

ha funzionato per me e sono felice! :)

Ricorda che questa non è la risposta effettiva a questa domanda. Ho menzionato questo perché funziona quando rimuovi le righe sopra.


24

Vai a File -> Struttura del progetto. Si aprirà la seguente finestra:

inserisci qui la descrizione dell'immagine

Da li:

  1. rimuovere la libreria junit (selezionare junit e premere il pulsante "-" in basso) e
  2. aggiungilo di nuovo (seleziona il pulsante "+" in basso, seleziona "dep. librerie", cerca "junit", premi OK). Premere OK per applicare le modifiche. Dopo circa 30 secondi la sincronizzazione dei gradi dovrebbe funzionare correttamente.

Spero che funzioni anche per te: D


3
Ci ho provato ma quando sono andato ad aggiungere nuovamente junit non c'era ... wtf
Brew Dain

Per aggiungere manualmente junit al progetto, apri il file "build.gradle (Modulo: app)" dal lato sinistro. Aggiungi questa riga: testCompile 'junit: junit: 4.12' alla fine del file in qualsiasi punto tra il blocco delle dipendenze e infine sincronizza il progetto andando su STRUMENTI> ANDROID> SYNC PROJECT CON GRADLE FILES
Hasaan Ali

Non ha funzionato per me. dopo aver nuovamente aggiunto junit4.12 ha dato lo stesso errore di OP.
user13107,

15

Non è in grado di ottenere la libreria junit.

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

Dopo aver aggiunto la riga sopra all'interno del blocco Android nel file build.gradle, ha risolto il problema. Ciò può essere dovuto al fatto che il tuo studio Android non ha una libreria junit.


15

aggiungi repository nel tuo file build.gradle

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

13

Probabilmente il tuo voto è incompleto, ti consiglio di aggiungere quanto segue

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

ma in alcuni casi non funzionerà, puoi eliminarlo completamente dalle tue dipendenze nel tuo voto.

Penso che andrà bene se si reinstalla Android Studio con la condizione di eliminazione della cartella Gradle che si trova nella cartella utente .gradle


8

Ecco cosa ho fatto per risolvere lo stesso problema. Sono dietro un firewall, che è lo stesso problema del tuo, suppongo. Quindi avevo provato a rimuovere il file

testCompile 'junit:junit:4.12' line 

ma quello non ha funzionato per me. Ho provato ad aggiungere sotto le righe di codice:

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

Anche quello non ha funzionato per me.

Ho provato a rimuovere (-) e leggere (+) Junit4.12 dalle dipendenze della libreria in Impostazioni modulo. Comunque non ha funzionato per me.

Ho provato a sincronizzare e ricostruire il progetto più volte. Non ha ancora funzionato per me.

Alla fine quello che ho fatto è stato scaricare manualmente il file Junit4.12.jar dal sito Web mvnrepository. Ho messo questo file jar nello spazio di lavoro di Androids nella cartella Progetto all'interno della cartella libs. Quindi vai su Impostazioni modulo> scheda Dipendenze> (+)> Dipendenza file> nella finestra del percorso Sleect, espandi la cartella 'libs' e troverai il file Jar che hai copiato al suo interno. Selezionare il file e fare clic su "OK". Ora rimuovere la versione precedente di junit4.12 dall'elenco delle dipendenze.

Dovresti avere una voce "libs\junit-4.12.jar"nell'elenco Dipendenze. Ora fai clic su "OK".

Ora Gradle ricostruirà il progetto e dovresti essere bravo ad andare.

Spero che questo ti aiuti!


Ho appena invalidato la cache e riavviato Android Studio.
Mohammedsalim Shivani,

6

Ho provato tutto, ma l'unica cosa che mi aiuta a risolvere il problema è stata eliminare la riga

testCompile 'junit:junit:4.12'

dal voto dell'app.


5

Succede perché HTTPS è bloccato dal proxy. Prova a passare da jcenter predefinito (che utilizza HTTPS) a HTTP.

Prima

repositories {
     jcenter()
}

Dopo

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

Ripetere il passaggio precedente per tutti i progetti.

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

Non funziona quando viene eseguito il proxy, il traffico HTTP funziona e il traffico HTTPS è vietato.
Diti,

Hmm .. Questo è quello che ho cercato di spiegare nel mio post. Per impostazione predefinita utilizza HTTPS che è bloccato. Vedi prima e dopo
jafarmlp il

4

Ho ricevuto questo errore dopo aver creato un nuovo progetto. Nel file build.gradle, avevo questo:

jcenter()

Lo cambio nel modo seguente e l'errore è andato via:

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

Penso che sia perché sono dietro un firewall e specificando l'URL in questo modo lo cambia da https a http


1
Molte grazie . Questa correzione mi ha aiutato
Android_programmer_office,

4

Probabilmente sei dietro proxy. Mi è successo, ho usato il mio progetto di ricostruzione del tethering mobile (senza proxy) e l'errore è scomparso. Restituito alla connessione originale (con proxy) e ricostruito senza errori.


Avevo anche bisogno di specificare un proxy per Gradle, ma non volevo aggiungere i miei dati di accesso a ogni progetto. La risposta è stata aggiungere un gradle.properties alla mia directory utente. Maggiori informazioni in questa risposta - stackoverflow.com/a/26524019/542629 .
walkingTarget

4

Stai usando il proxy ? In tal caso, il problema potrebbe essere nella configurazione di rete mancante per https nel tuogradle.properties file.

AndroidStudio mette automaticamente le impostazioni proxy predefinite in gradle.properties archiviare nel tuo progetto, ma solo per http e dimentica https.

Quindi in pratica il tuo gradle.propertiesfile deve contenere sia la configurazione http che 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

3

Principalmente questo problema si presenta quando si aggiorna l'SDK, al momento della creazione del progetto la creazione di Gradle non riesce. Se si aggiungono i Maven e jcenter repository al vostro build.gradle (Modulo: app) il vostro problema sarà risolto.

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

Queste sono le due righe che devi aggiungere dopo

apply plugin: 'com.android.application' 

Ecco come appare il tuo codice dopo aver aggiunto quelle due righe

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'
        }
    }
}

3

L'errore è causato dalla mancanza di file jar. La mia semplice soluzione è semplicemente copiando tutti i file che non si risolvono nel repository C: \ Programmi \ Android \ Android Studio \ gradle \ m2 ... (il percorso del file potrebbe essere diverso). Ho ottenuto circa 6 dipendenze che non possono essere risolte, junit è una di queste e le altre sono com, org e javax. Dal momento che sono dietro un firewall, anche se ho aggiunto il codice per il repository, Android Studio non sembra accedervi. Sono andato nel repository Maven e ho scaricato tutti i file che non si risolvono. Problema risolto e la pendenza si sincronizza senza errori. Ma sono un principiante certificato con solo 1 giorno di esperienza, quindi non lo faccio se questo è il modo corretto di farlo.

Errore di esempio: impossibile risolvere com: squareup: javawriter: 2.1.1

Passaggio 1: ho creato un percorso C: \ Programmi \ Android \ Android Studio \ gradle \ m2repository \ com \ squareup \ javawriter \ 2.1.1 \

Passaggio 2: ho scaricato tutti i file jar dal repository maven: http://repo1.maven.org/maven2/com/squareup/javawriter/2.1.1/

Passaggio 3: ho scaricato manualmente tutti i file .jar da questa directory

Passaggio 4: li ho copiati in C: \ Programmi \ Android \ Android Studio \ gradle \ m2repository \ com \ squareup \ javawriter \ 2.1.1 \

L'ho ripetuto per tutti i file che non sono stati risolti, inclusa la junit.

Per junit, ecco la directory che ho creato: C: \ Programmi \ Android \ Android Studio \ gradle \ m2repository \ junit \ junit \ 4.12 e quindi ho copiato junit-4.12.jar all'interno di questa directory e l'errore junit è scomparso.


3
  1. Assicurati di non essere dietro un proxy!
  2. Se hai configurato Android Strudio per funzionare con proxy, assicurati di disabilitare tale opzione nelle preferenze di Android Studio
  3. Vai a gradle.properties sotto la visualizzazione Android in Android Studio ed elimina tutte le configurazioni proxy
  4. Sincronizza il tuo voto adesso
  5. Goditi la programmazione!

2

CAMBIA il tuo build.gradle in questo modo, funziona bene per me:

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'
}

aggiunto

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

per android


2

Vai a File -> Struttura del progetto -> dipendenza Qui troverai -> junit: unità: 4.12

Sul lato destro .. selezionare compilare dal menu a discesa. Semplice ... fatto.

Immagine di riferimento: http://i.stack.imgur.com/5WvS3.png

Reds 'VV


2

La mia installazione di Android Studio è completamente offline. Per risolvere questo tipo di problemi ho usato Process Monitor. Ha mostrato che mancano alcuni file in "Android Studio \ gradle \ m2repository". Ho scaricato tutti i file da

  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/ (posso pubblicare solo due link ... ;-))

e copiato questi file in "Android Studio \ gradle \ m2repository". Devi creare la struttura sotto "m2repository" come è sotto "maven2". Forse ci sono più file mancanti, ma in questo momento almeno la compilazione di Gradle è terminata senza errori.


in tutte queste risposte, questo è stato l'unico che ha risolto il mio problema (li ho testati tutti!). ovviamente per me occorreva aggiungere più repository ma la soluzione era la stessa. l'unico che non ha funzionato è stato "javax.annotation-api / 1.2" che dopo alcuni test ho dovuto rimuoverlo dalle dipendenze. grazie @Tasko
Lord Sepid

2

Avevo lo stesso problema.

  • 1 opzione: scarica junit 4.12.jar e copialo nella tua cartella lib e riavvia Android Studio. Vantaggio non è necessario creare alcun nuovo progetto

  • 2 opzione: creare un nuovo progetto con connessioni Internet e copiare tutto il codice java e XML nel progetto appena creato. Beneficio di questo problema sarà risolto in modo permanente


1

Rimuovi la linea testCompile 'junit:junit:4.12'

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

Successivamente, sincronizza nuovamente il progetto.


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

Nota: rimuovere testCompile 'junit: junit: 4.12' line è stato risolto il mio problema.


1

Prova questo:

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'
}

1

Se sei dietro un proxy. Android Studio aggiungerà proxy per http a Gradle, ma non per https. Aggiungi le impostazioni proxy per https a gradle.properties


1

se hai riscontrato questo problema puoi risolverlo completamente cambiando:

build.gradle (progetto: ...)

sostituire questo

    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
}

1

Ho avuto lo stesso problema, ma con un altro problema.

L'altro mio problema era che la build Gradle era troppo lenta!

Ho risolto il mio problema facendo questoL

Se ti piace mdew, devi farlo ogni volta che stai creando il tuo progetto per farlo

Quindi, se si desidera impostare l'opzione predefinita su Maven

Fai questo:

Vai alla cartella:

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

Quindi aprire il build.gradle.ftlfile con notepad ++ o notepad e sostituire tutto jcenter()con mavenCentral().

EDIT: Perché è andato giù votato? non ti piace?


1

Non riuscivo a capire perché Android Studio non si sincronizzasse con Gradle. Si è scoperto che non mi piaceva la mia VPN, quindi fai attenzione!


1

Vai su Vai a "File" -> "Struttura del progetto" -> "App" Nella scheda "Proprietà". Nel campo "Repository libreria" inserire " http://repo1.maven.org/maven2 ", quindi premere OK. È stato risolto così per me. Ora il progetto si sta compilando.


1

Connettiti a Internet e avvia Android Studio e apri il tuo progetto. Mentre Gradle Sync scaricherà le dipendenze da Internet (Tutti i file JAR). Questo mi ha risolto. Nessuna modifica nel file Gradle, tutto è stato eseguito automaticamente da Android Studio. Utilizzando Android Studio 2.2 :)

Inoltre, non dimenticare di installare Java JDK 1.x (7 o 8 funzionano tutti bene).


1

Mi piacerebbe suggerire la soluzione, che si adatta perfettamente alla mia situazione:

  • all'inizio, assicurati di aggiungere

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

    al file build.gradle a livello di progetto all'interno del buildscript {}blocco

  • Poi aggiungi

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

    al file build.gradle a livello di progetto

  • il punto successivo sta aggiungendo

    repositories {
        jcenter()
        mavenCentral()
    }

    al livello di build-livello all'interno del modulo buildTypes{ }


1

Cerca molte risposte ma nulla funziona. Fortunatamente aveva trovato la soluzione semplice. Non è necessario commentare junit4.12 o eliminarlo. Il problema è qui:

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

Questa parte ci mostra il percorso per cercare il file nella libreria nel tuo progetto. Non ho idea del perché, ma per qualche motivo di default è vuoto. Nel mio caso il percorso è:

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

Sicuro che puoi eliminare questa riga nel codice build.grandle(Module.app) ma potresti averne bisogno in un secondo momento. Ecco la soluzione:

1 - scarica junit-4.12.jar o copialo dalla cartella di Android Studio, normalmente dovrebbe essere lì. Nel mio caso, era qui:

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

alla directory sopra menzionata (al tuo progetto)

2 - elimina e aggiungi

qui dovresti inserire nuovamente il root su junit-4.12.jar

3 - ricostruire

4 - lavora sodo

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.