Error: (23, 17) Error al resolver: junit: junit: 4.12

133

¿Por qué cada vez que creo un nuevo proyecto en Android Studio, siempre aparece:

Error: (23, 17) Error al resolver: junit: junit: 4.12?

Cuando elimino las testCompile 'junit:junit:4.12'dependencias, ya no es 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'
}
fathurzero
fuente
Parece que tienes el jar no en tu repositorio.
Jens
¿Cómo manejarlo? He instalado el JDK 7 y también agrego la ruta en las variables de entorno
fathurzero
¿Qué repositorio usas para gradle?
Jens
1
Parece que los frascos están presentes jcenter.bintray.com/junit/junit/4.12
Jens
1
Comprueba mi nueva respuesta: stackoverflow.com/a/38151747/5733853
VahidHoseini

Respuestas:

124

Yo tuve el mismo problema. Resuelto agregando url para el repositorio perdido en el build.gradlearchivo:

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

Eso es.

mdew
fuente
Eso definitivamente resolvió el problema para mí, por lo que al menos puedo sincronizar ahora
revolucionario
16
¿Cuál fue la causa raíz de esto?
Raulp
Esto resolvió el problema, pero ¿qué es eso maven?
Sithu
1
Debe agregarse anteriormente buildTypes, de lo contrario, el error buildTypes no se puede aplicar a groovy.lang.Closure ocurrirá.
Sithu
¿Qué hay de jcenter()? ¿Es necesario eliminar jcenter()de los repositorios?
Hosein Aqajani
34

Simplemente elimine el "testCompile 'junit: junit: 4.12'" del archivo 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'
 }

funcionó para mí y estoy feliz! :)

Recuerde que esta no es la respuesta real de esta pregunta. Mencioné esto porque funciona cuando eliminas las líneas anteriores.

Naveed Jamali
fuente
24

Vaya a Archivo -> Estructura del proyecto. Se abrirá la siguiente ventana:

ingrese la descripción de la imagen aquí

Desde allí:

  1. elimine la biblioteca junit (seleccione junit y presione el botón "-" a continuación) y
  2. agréguelo nuevamente (seleccione el botón "+" a continuación, seleccione "biblioteca de dep.", busque "junit", presione OK). Presione OK para aplicar los cambios. Después de unos 30 segundos, la sincronización de Gradle debería funcionar bien.

Espero que funcione para ti también: D

Hasaan Ali
fuente
3
Intenté esto, pero cuando fui a agregar junit nuevamente, no estaba allí ... wtf
Brew Dain
Para agregar manualmente junit al proyecto, abra el archivo "build.gradle (Módulo: aplicación)" desde el lado izquierdo. Agregue esta línea: testCompile 'junit: junit: 4.12' al final del archivo en cualquier lugar entre el bloque de dependencias y finalmente sincronice el proyecto yendo a HERRAMIENTAS> ANDROID> PROYECTO DE SINCRONIZACIÓN CON ARCHIVOS DE GRADLE
Hasaan Ali
no funciono para mi después de agregar nuevamente junit4.12 dio el mismo error que OP.
user13107
15

No puede obtener la biblioteca junit.

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

Después de agregar la línea anterior dentro del bloque de Android en el archivo build.gradle, resolvió el problema. Esto puede deberse a que su estudio de Android no tiene una biblioteca junit.

Mona
fuente
15

agregar repositorio en su archivo build.gradle

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

Probablemente tu gradle esté incompleto, te recomiendo que agregues lo siguiente

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

pero en algunos casos no funcionará, puede eliminarlo completamente de sus dependencias en su gradle.

Creo que estará bien si reinstalas el estudio de Android con la condición de eliminación de la carpeta gradle que está en la carpeta del usuario .gradle

VahidHoseini
fuente
8

Esto es lo que hice para resolver el mismo problema. Estoy detrás de un firewall, que es el mismo problema que el tuyo, supongo. Así que intenté eliminar el

testCompile 'junit:junit:4.12' line 

Pero eso no funcionó para mí. Intenté agregar las siguientes líneas de código:

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

Incluso eso no funcionó para mí.

Intenté eliminar (-) y volver a leer (+) Junit4.12 de las dependencias de la biblioteca en Configuración del módulo. Aún así, eso no funcionó para mí.

Intenté sincronizar y reconstruir el proyecto varias veces. Todavía no funcionó para mí.

Finalmente, lo que hice fue descargar manualmente el archivo Junit4.12.jar del sitio web mvnrepository. Puse este archivo jar en el Androids Workspace debajo de la carpeta Project dentro de la carpeta libs. Luego vaya a Configuración del módulo> Pestaña Dependencias> (+)> Dependencia de archivo> en la ventana Ruta de acceso, expanda la carpeta 'libs' y encontrará el archivo Jar que copió allí. Seleccione el archivo y haga clic en 'Aceptar'. Ahora elimine la versión anterior de junit4.12 de la lista de dependencias.

Deberías tener una entrada "libs\junit-4.12.jar" en la lista de dependencias. Ahora haga clic en 'Aceptar'.

Ahora Gradle reconstruirá el proyecto y deberías estar listo.

¡Espero que esto ayude!

Murtuza K
fuente
Acabo de invalidar el caché y reinicié Android Studio.
Mohammedsalim Shivani
6

Intenté todo, pero lo único que me ayudó a resolver el problema fue eliminar la línea

testCompile 'junit:junit:4.12'

de la aplicación gradel.

Ortal D
fuente
5

Ocurre porque HTTPS está bloqueado por Proxy. Intente cambiar de jcenter predeterminado (que usa HTTPS) a HTTP.

antes de

repositories {
     jcenter()
}

Después

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

Repita el paso anterior para todos los proyectos.

allprojects {
  repositories {
    jcenter {
        url "http://jcenter.bintray.com/"
    }
  }
}
jafarmlp
fuente
No funciona cuando está proxy, el tráfico HTTP funciona y el tráfico HTTPS está prohibido.
Diti
Hmm .. Esto es lo que intenté explicar en mi publicación. Por defecto usa HTTPS que está bloqueado. Ver antes y después
jafarmlp
4

Recibí este error después de crear un nuevo proyecto. En el archivo build.gradle, tuve esto:

jcenter()

Lo cambio a lo siguiente y el error desapareció:

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

Creo que esto se debe a que estoy detrás de un cortafuegos y al especificar la URL así, cambia de https a http

Al Lelopath
fuente
1
Muchas gracias . Esta solución me ayudó
Android_programmer_office
4

Probablemente estés detrás del proxy. Me pasó a mí, usé mi proyecto de reconstrucción de conexión móvil (sin proxy) y el error desapareció. Regresó a la conexión original (con proxy) y reconstruyó sin errores.

Asem Daaboul
fuente
También necesitaba especificar un proxy para gradle, pero no quería agregar mis detalles de inicio de sesión a cada proyecto. La respuesta fue agregar un gradle.properties a mi directorio de usuarios. Más información en esta respuesta: stackoverflow.com/a/26524019/542629 .
walkingTarget
4

¿Estás usando proxy ? Si es así, el problema puede estar en la falta de configuración de red para https en su gradle.propertiesarchivo.

AndroidStudio pone automáticamente su configuración de proxy predeterminada a gradle.properties archivar en su proyecto, pero solo para http y olvida https.

Entonces, básicamente, su gradle.propertiesarchivo debe contener tanto http como https config:

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
fuente
3

En su mayoría, este problema se producirá cuando actualice su SDK, en el momento de la creación del proyecto. La compilación de Gradle falla. Si agrega los repositorios maven y jcenter a su build.gradle (Módulo: aplicación), su problema se resolverá.

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

Estas son las dos líneas que debe agregar después

apply plugin: 'com.android.application' 

Así es como se ve su código después de agregar esas dos líneas

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
fuente
3

El error es causado por la falta de archivos jar. Mi solución simple es simplemente copiar todos los archivos que no se resuelven en el repositorio C: \ Archivos de programa \ Android \ Android Studio \ gradle \ m2 ... (la ruta del archivo puede ser diferente). Tengo alrededor de 6 dependencias que no se pueden resolver, junit es una de ellas y las otras son com, org y javax. Como estoy detrás de un firewall, incluso si agregué el código para el repositorio, Android Studio no parece tener acceso a él. Fui al repositorio de Maven y descargué todos los archivos que no se resolverán. Problema resuelto y la sincronización de Gradle sin error. Pero soy un novato certificado con solo 1 día de experiencia, así que no lo sé si esta es la forma correcta de hacerlo.

Error de ejemplo: No se puede resolver com: squareup: javawriter: 2.1.1

Paso 1: Creé una ruta C: \ Archivos de programa \ Android \ Android Studio \ gradle \ m2repository \ com \ squareup \ javawriter \ 2.1.1 \

Paso 2: descargué todos los archivos jar del repositorio maven: http://repo1.maven.org/maven2/com/squareup/javawriter/2.1.1/

Paso 3: descargué manualmente todos los archivos .jar de este directorio

Paso 4: los copié en C: \ Archivos de programa \ Android \ Android Studio \ gradle \ m2repository \ com \ squareup \ javawriter \ 2.1.1 \

Repetí esto a todos los archivos que no se resolvieron, incluido el junit.

Para junit, aquí está el directorio que creé: C: \ Archivos de programa \ Android \ Android Studio \ gradle \ m2repository \ junit \ junit \ 4.12 y luego copié el junit-4.12.jar dentro de este directorio y el error de junit desapareció.

Roy Selim
fuente
3
  1. ¡Asegúrese de no estar detrás de un proxy!
  2. Si configuró su Android Strudio para que funcione con proxy, asegúrese de deshabilitar esa opción en las preferencias de Android Studio
  3. Vaya a gradle.properties en la vista de Android en Android Studio y elimine toda la configuración del proxy
  4. Sincroniza tu gradle ahora
  5. ¡Disfruta codificando!
Catluc
fuente
2

CAMBIA tu build.gradle como esto, funciona bien para mí:

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

adicional

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

a android


fuente
2

Vaya a Archivo -> Estructura del proyecto -> dependencia Allí encontrará -> junit: unit: 4.12

En el lado derecho ... seleccione compilar del menú desplegable. Simple ... está hecho.

Imagen de referencia: http://i.stack.imgur.com/5WvS3.png

VV de los rojos

Vaisakh Venugopal
fuente
2

Mi instalación de Android Studio está completamente fuera de línea. Para resolver este tipo de problemas, he utilizado el Monitor de procesos. Mostró que faltan algunos archivos dentro del "Android Studio \ gradle \ m2repository". He descargado todos los archivos 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/ (Solo puedo publicar dos enlaces ... ;-))

y copié estos archivos en "Android Studio \ gradle \ m2repository". Debe crear la estructura debajo de "m2repository" como está debajo de "maven2". Tal vez haya más archivos faltantes, pero en este momento al menos la construcción de Gradle está terminada sin errores.

Tasko
fuente
en todas estas respuestas, esta fue la única que realmente resolvió mi problema (¡las probé todas!). Por supuesto, para mí necesitaba agregar más repositorios, pero la solución era la misma. el único que no funcionó fue "javax.annotation-api / 1.2" que después de algunas pruebas tuve que eliminarlo de las dependencias. gracias @Tasko
Lord Sepid
2

Estaba teniendo el mismo problema

  • 1 opción: descargue junit 4.12.jar y cópielo en su carpeta lib y reinicie android studio. Beneficio no tienes que crear ningún proyecto nuevo

  • Opción 2: cree un nuevo proyecto con conexión a Internet y copie todo el código Java y XML en el proyecto recién creado. Beneficio de este problema se resolverá permanentemente

Akash Jaiswal
fuente
1

Eliminar la línea testCompile 'junit:junit:4.12'

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

Después de eso, sincronice el proyecto nuevamente.

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

Nota: Eliminar la línea testCompile 'junit: junit: 4.12' se ha resuelto mi problema.

Hasan Sabbir
fuente
1

Prueba esto:

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
fuente
1

Si estás detrás de un proxy. Android Studio agregará proxy para http a Gradle, pero no para https. Agregue configuraciones proxy para https a gradle.properties

KennyXu
fuente
1

Si enfrentó este problema, puede resolverlo completamente cambiando:

build.gradle (proyecto: ...)

reemplazar esto

    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
fuente
1

Tuve el mismo problema, pero con otro problema.

¡Mi otro problema fue que la construcción de Gradle fue demasiado lenta!

Resolví mi problema haciendo esto.

Si le gusta mdew, necesita hacerlo cada vez que cree su proyecto para hacerlo.

Entonces, si desea establecer la opción predeterminada para maven

Hacer esto:

Ve a la carpeta:

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

Luego abra el build.gradle.ftlarchivo con notepad ++ o notepad y reemplace todo jcenter()con mavenCentral().

EDITAR: ¿Por qué está bajando votado? no te gusta

Nombre para mostrar
fuente
1

No pude entender por qué Android Studio no se sincronizaba con gradle. Resultó que no le gustaba mi VPN, ¡así que esté atento!

Ben
fuente
1

Vaya a Ir a "Archivo" -> "Estructura del proyecto" -> "Aplicación" en la pestaña "propiedades". En el campo "Repositorio de la biblioteca" , coloque ' http://repo1.maven.org/maven2 ' y luego presione Ok. Fue arreglado así para mí. Ahora el proyecto se está compilando.

MM
fuente
1

Simplemente conéctese a Internet e inicie Android Studio y abra su proyecto. Mientras Gradle Sync descargará las dependencias de Internet (todos los archivos JAR). Esto lo resolvió para mí. Sin edición en el archivo Gradle, Android Studio lo hizo todo automáticamente. Usando Android Studio 2.2 :)

Además, no olvide instalar Java JDK 1.x (7 u 8 todo funciona bien).

Rupanshu Raman
fuente
1

Me encantaría sugerir la solución, que es perfecta para mi situación:

  • Al principio, asegúrese de agregar

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

    al archivo build.gradle a nivel de proyecto dentro del buildscript {}bloque

  • Luego añade

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

    al archivo build.gradle a nivel de proyecto

  • el siguiente punto es agregar

    repositories {
        jcenter()
        mavenCentral()
    }

    a nivel de módulo build-gradle dentro buildTypes{ }

iamtodor
fuente
1

Busque muchas respuestas pero nada funciona. Afortunadamente había encontrado la solución fácil. No es necesario comentar junit4.12 o eliminarlo. El problema está aquí:

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

Esta parte nos muestra la ruta para buscar el archivo en la biblioteca en su proyecto. No tengo idea de por qué, pero por alguna razón por defecto está vacío. En mi caso el camino es:

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

Claro que puedes borrar esta línea en el código build.grandle(Module.app) pero es posible que la necesite más tarde. Aquí está la solución:

1 - descargue junit-4.12.jar o cópielo de su carpeta de Android Studio, normalmente debería estar allí. En mi caso, fue aquí:

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

al directorio mencionado anteriormente (a su proyecto)

2 - eliminar y agregar

aquí debe volver a ingresar la raíz a su junit-4.12.jar

3 - reconstruir

4 - trabaja duro

Arthur Zakharov
fuente