Ошибка: (23, 17) Не удалось разрешить: junit: junit: 4.12


133

Почему каждый раз, когда я создаю новый проект в Android Studio, всегда возникают:

Ошибка: (23, 17) Не удалось разрешить: junit: junit: 4.12?

Когда я удаляю testCompile 'junit:junit:4.12'зависимости, это больше не проблема.

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

Похоже, у вас есть банка не в вашем репозитории.
Йенс

как с этим справиться? Я установил JDK 7, а также добавил путь в переменные среды
fathurzero

Какой репозиторий вы используете для gradle.
Йенс

1
Похоже, банки присутствуют jcenter.bintray.com/junit/junit/4.12
Jens

1
Проверьте мой новый ответ: stackoverflow.com/a/38151747/5733853
Вахид Хосейни 01

Ответы:


124

У меня такая же проблема. Решено путем добавления URL-адреса отсутствующего репозитория в build.gradleфайл:

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

Вот и все.


Это определенно решило проблему для меня, так что, по крайней мере, я могу синхронизировать градиент сейчас
революционный

16
что послужило причиной этого?
Raulp 05

Это решило проблему, но что это maven?
Ситху

1
Его следует добавить выше buildTypes, иначе ошибки buildTypes не могут быть применены к groovy.lang.Closure .
Ситху

Как насчет jcenter()? Надо ли исключать jcenter()из репозиториев?
Хосейн Акаджани

34

Просто удалите testCompile 'junit: junit: 4.12' из файла 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'
 }

работал у меня и я доволен! :)

Помните, что это не настоящий ответ на этот вопрос. Я упомянул об этом, потому что это работает, когда вы удаляете строки выше.


24

Перейдите в Файл -> Структура проекта. Откроется следующее окно:

введите описание изображения здесь

Оттуда:

  1. удалите библиотеку junit (выберите junit и нажмите кнопку «-» ниже) и
  2. добавьте его снова (нажмите кнопку «+» ниже, выберите «отдел библиотеки», найдите «junit», нажмите ОК). Нажмите ОК, чтобы применить изменения. Примерно через 30 секунд ваша синхронизация gradle должна работать нормально.

Надеюсь, это сработает и для вас: D


3
Я пробовал это, но когда я пошел, чтобы добавить джунит обратно, его там не было ... черт возьми
Brew Dain

Чтобы вручную добавить junit в проект, откройте файл build.gradle (Module: app) слева. Добавьте эту строку: testCompile 'junit: junit: 4.12' в конец файла в любом месте между блоком зависимостей и, наконец, синхронизируйте проект, перейдя в ИНСТРУМЕНТЫ> АНДРОИД> СИНХРОНИЗАЦИЯ ПРОЕКТА С ФАЙЛАМИ ГРАДУСА
Хасан Али

не работал для меня. после повторного добавления junit4.12 он выдал ту же ошибку, что и OP.
user13107

15

Невозможно получить библиотеку junit.

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

После добавления строки выше внутри блока android в файл build.gradle проблема решена. Это может быть связано с тем, что в вашей студии Android нет библиотеки junit.


15

добавьте репозиторий в свой файл build.gradle

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

13

Возможно, ваш градиент неполный, я рекомендую вам добавить следующее

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

но в некоторых случаях это не сработает, вы можете полностью удалить его из своих зависимостей в своем gradle.

Я думаю, что все будет в порядке, если вы переустановите студию Android с условием удаления папки gradle, которое находится в папке пользователя .gradle


8

Вот что я сделал для решения той же проблемы. Я нахожусь за брандмауэром, что, как я полагаю, является той же проблемой, что и ваша. Итак, я попытался удалить

testCompile 'junit:junit:4.12' line 

но это не сработало для меня. Я попытался добавить следующие строки кода:

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

Даже это не помогло мне.

Я попытался удалить (-) и прочитать (+) Junit4.12 из зависимостей библиотеки в настройках модуля. Тем не менее, это не сработало для меня.

Несколько раз пытался синхронизировать и перестроить проект. У меня все еще не получилось.

Наконец, я вручную загрузил файл Junit4.12.jar с веб-сайта mvnrepository. Я поместил этот файл jar в рабочую область Androids в папку Project внутри папки libs. Затем перейдите в «Настройки модуля»> вкладка «Зависимости»> (+)> «Зависимость от файла»> в окне «Путь к Sleect», разверните папку «libs», и вы найдете внутри нее скопированный файл Jar. Выберите файл и нажмите «ОК». Теперь удалите предыдущую версию junit4.12 из списка зависимостей.

У вас должна быть одна запись "libs\junit-4.12.jar"в списке зависимостей. Теперь нажмите «ОК».

Теперь Gradle перестроит проект, и вам нужно идти вперед.

Надеюсь это поможет!


Я просто аннулировал кеш и перезапустил Android Studio.
Мохаммедсалим Шивани

6

Я пробовал все что угодно, но единственное, что помогло мне решить проблему, - это удалить строку

testCompile 'junit:junit:4.12'

из приложения Gradel.


5

Это происходит потому, что HTTPS заблокирован прокси. Попробуйте перейти с jcenter по умолчанию (который использует HTTPS) на HTTP.

Перед

repositories {
     jcenter()
}

После

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

Повторите вышеуказанный шаг для всех проектов.

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

Не работает при проксировании, HTTP-трафик работает, а HTTPS-трафик запрещен.
Diti

Хм .. Это то, что я пытался объяснить в своем посте. По умолчанию он использует HTTPS, который заблокирован. См. До и после
jafarmlp

4

Я получил эту ошибку после создания нового проекта. В файле build.gradle у меня было вот такое:

jcenter()

Я меняю его на следующее, и ошибка исчезла:

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

Я думаю, это потому, что я нахожусь за брандмауэром, и указание URL-адреса меняет его с https на http.


1
Большое спасибо . Это исправление помогло мне
Android_programmer_office

4

Вероятно, вы за прокси. Это случилось со мной, я использовал мой проект восстановления мобильного модема (без прокси), и ошибка исчезла. Вернулось к исходному соединению (с прокси) и восстановлено без ошибок.


Мне также нужно было указать прокси для gradle, но я не хотел добавлять свои данные для входа в каждый проект. Ответ заключался в том, чтобы добавить gradle.properties в мою пользовательскую директорию. Дополнительная информация в этом ответе - stackoverflow.com/a/26524019/542629 .
walkingTarget

4

Вы используете прокси ? Если это так, проблема может заключаться в отсутствии конфигурации сети для https в вашемgradle.properties файле.

AndroidStudio автоматически помещает настройки прокси по умолчанию в gradle.propertiesфайл в вашем проекте, но только для http и забывает https.

Итак, в основном ваш gradle.propertiesфайл должен содержать конфигурацию http и 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

В основном эта проблема возникает, когда вы обновляете свой SDK, когда при создании проекта происходит сбой сборки Gradle. Если вы добавите репозитории maven и jcenter в свой build.gradle (Module: app), ваша проблема будет решена.

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

Это две строки, которые вы должны добавить после

apply plugin: 'com.android.application' 

Вот как выглядит ваш код после добавления этих двух строк

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

Ошибка вызвана отсутствием файлов jar. Мое простое решение - просто скопировать все файлы, которые не разрешаются, в C: \ Program Files \ Android \ Android Studio \ gradle \ m2repository ... (ваш путь к файлу может быть другим). У меня было около 6 зависимостей, которые невозможно разрешить, одна из них - junit, а остальные - com, org и javax. Поскольку я нахожусь за брандмауэром, даже если я добавил код для репозитория, Android Studio, похоже, не получит к нему доступа. Я зашел в репозиторий maven и загрузил все файлы, которые не разрешаются. Проблема решена, и синхронизация Gradle без ошибок. Но я сертифицированный новичок с опытом работы всего 1 день, поэтому я не знаю, если это правильный способ сделать это.

Пример ошибки: не удается разрешить com: squareup: javawriter: 2.1.1

Шаг 1: Я создал путь C: \ Program Files \ Android \ Android Studio \ gradle \ m2repository \ com \ squareup \ javawriter \ 2.1.1 \

Шаг 2: Я загрузил все файлы jar из репозитория maven: http://repo1.maven.org/maven2/com/squareup/javawriter/2.1.1/

Шаг 3: я вручную загрузил все файлы .jar из этого каталога

Шаг 4: я скопировал их в C: \ Program Files \ Android \ Android Studio \ gradle \ m2repository \ com \ squareup \ javawriter \ 2.1.1 \

Я повторил это для всех файлов, которые не разрешились, включая junit.

Для junit это созданный мной каталог: C: \ Program Files \ Android \ Android Studio \ gradle \ m2repository \ junit \ junit \ 4.12, а затем я скопировал junit-4.12.jar в этот каталог, и ошибка junit исчезла.


3
  1. Убедитесь, что вы не находитесь за прокси!
  2. Если вы настроили Android Strudio для работы с прокси, обязательно отключите эту опцию в настройках Android Studio.
  3. Перейдите к gradle.properties в Android-представлении в Android Studio и удалите всю конфигурацию прокси.
  4. Синхронизируйте свой Gradle сейчас
  5. Наслаждайтесь кодированием!

2

ИЗМЕНИТЕ свой build.gradle, как это, отлично работает для меня:

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

добавленной

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

в android


2

Перейдите в File -> Project Structure -> dependency Там вы найдете -> junit: unit: 4.12

С правой стороны .. выберите компиляцию из раскрывающегося списка. Просто .. это сделано.

Базовое изображение: http://i.stack.imgur.com/5WvS3.png

Красный ВВ


2

Моя установка Android Studio полностью отключена. Для решения подобных проблем я использовал Process Monitor. Он показал, что в "Android Studio \ gradle \ m2repository" отсутствуют несколько файлов. Я скачал все файлы из

  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/ (я могу разместить только две ссылки ... ;-))

и скопировал эти файлы в "Android Studio \ gradle \ m2repository". Вы должны создать структуру под «m2repository», как под «maven2». Может быть, есть еще недостающие файлы, но на данный момент сборка Gradle завершена без ошибок.


во всех этих ответах это был единственный, который действительно решил мою проблему (я тестировал их все!). Конечно, мне нужно было добавить больше репозиториев, но решение было таким же. не работал только javax.annotation-api / 1.2, который после нескольких тестов мне пришлось удалить из зависимостей. спасибо @Tasko
Lord Sepid

2

У меня была такая же проблема.

  • Вариант 1: загрузите junit 4.12.jar, скопируйте его в папку lib и перезапустите студию Android. Преимущество: вам не нужно создавать новый проект

  • Вариант 2: создайте новый проект с подключением к Интернету и скопируйте весь код Java и XML во вновь созданный проект. Благо эта проблема будет решена навсегда


1

Удалить строку testCompile 'junit:junit:4.12'

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

После этого снова синхронизируйте проект.


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

Примечание. Удаление строки testCompile 'junit: junit: 4.12' решило мою проблему.


1

Попробуй это:

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

Если вы находитесь за прокси. Android Studio добавит прокси для http в Gradle, но не для https. Добавьте настройки прокси для https в gradle.properties


1

если вы столкнулись с этой проблемой, вы можете полностью решить ее, изменив:

build.gradle (проект: ...)

замени это

    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

У меня была такая же проблема, но с другой проблемой.

Другая моя проблема заключалась в том, что сборка Gradle была слишком медленной!

Я решил свою проблему, сделав это L

Если вам нравится mdew, вам нужно это делать каждый раз, когда вы создаете свой проект.

Итак, если вы хотите установить параметр по умолчанию для maven

Сделай это:

Заходим в папку:

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

Затем откройте build.gradle.ftlфайл с помощью блокнота ++ или блокнота и замените все jcenter()на mavenCentral().

РЕДАКТИРОВАТЬ: Почему проголосовали за его отказ? тебе не нравится это?


1

Я не мог понять, почему Android Studio не синхронизируется с gradle. Оказалось, что ему не понравился мой VPN, так что следите за этим!


1

Перейдите в «Файл» -> «Структура проекта» -> «Приложение» во вкладке «Свойства». В «Библиотека Repository» поле пут « http://repo1.maven.org/maven2 » , затем нажмите кнопку ОК. У меня это было исправлено. Сейчас проект компилируется.


1

Просто подключитесь к Интернету, запустите Android Studio и откройте свой проект. Пока Gradle Sync загружает зависимости из Интернета (все файлы JAR). Это решило проблему для меня. Нет редактирования в файле Gradle, все было сделано Android Studio автоматически. Используя Android Studio 2.2 :)

Также не забудьте установить Java JDK 1.x (7 или 8 все работает нормально).


1

Я хотел бы предложить решение, которое идеально подходит для моей ситуации:

  • сначала обязательно добавьте

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

    на уровне файла build.gradle уровня проекта внутри buildscript {}блока

  • затем добавьте

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

    в файл build.gradle уровня проекта

  • следующий пункт добавляет

    repositories {
        jcenter()
        mavenCentral()
    }

    для сборки на уровне модуля внутри buildTypes{ }


1

Просмотрите много ответов, но ничего не работает. К счастью, было найдено простое решение. Не нужно комментировать junit4.12 или удалять его. Проблема здесь:

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

Эта часть показывает нам путь для поиска файла в библиотеке вашего проекта. Понятия не имею, почему, но по какой-то причине по умолчанию он пуст. В моем случае путь:

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

Конечно, вы можете удалить эту строку в коде, build.grandle(Module.app)но она может вам понадобиться позже. Вот решение:

1 - скачайте junit-4.12.jar или скопируйте его из папки Android Studio, обычно он должен быть там. В моем случае это было здесь:

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

в каталог, указанный выше (в ваш проект)

2 - удалить и добавить

здесь вы должны повторно ввести корень вашего junit-4.12.jar

3 - перестроить

4 - много работать

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.