오류 : (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'
}

저장소에 항아리가없는 것 같습니다.
Jens

JDK 7을 설치하고 환경 변수에 경로를 추가했습니다
fathurzero

gradle에 어떤 저장소를 사용합니까?
Jens

1
항아리가있는 것 같습니다 jcenter.bintray.com/junit/junit/4.12
Jens

1
내 새 응답을 확인합니다 stackoverflow.com/a/38151747/5733853
VahidHoseini

답변:


124

나는 같은 문제가 있었다. build.gradle파일 에 누락 된 저장소에 대한 URL을 추가하여 해결했습니다 .

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

그게 다야.


그건 확실히 내가 Gradle을 동기화를 할 수 있도록이어야 지금, 나를 위해 문제를 해결
혁신적인

16
근본 원인은 무엇입니까?
Raulp

이것은 문제를 해결했지만 그게 무엇 maven입니까?
Sithu

1
위에 추가해야합니다 buildTypes. 그렇지 않으면 오류 buildTypes를 groovy.lang.Closure에 적용 할 수 없습니다 .
Sithu

무엇에 대해 jcenter()? jcenter()리포지토리 에서 제거해야 합니까?
Hosein Aqajani

34

build.gradle 파일에서 "testCompile 'junit : junit : 4.12'"를 제거하십시오.

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
나는 이것을 시도했지만 junit을 다시 추가 할 때 거기에 없었습니다 ... wtf
Brew Dain

junit을 프로젝트에 수동으로 추가하려면 왼쪽에서 "build.gradle (Module : app)"파일을여십시오. 이 줄을 추가하십시오 : 의존성 블록 사이의 파일 끝에서 testCompile 'junit : junit : 4.12'를 선택하고 마지막으로 도구> ANDROID> GRADLE 파일과 프로젝트 동기화
Hasaan Ali

나를 위해 일하지 않았다. junit4.12를 다시 추가하면 OP와 동일한 오류가 발생합니다.
user13107

15

junit 라이브러리를 얻을 수 없습니다.

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

build.gradle 파일의 android 블록 안에 위의 줄을 추가하면 문제가 해결되었습니다. 안드로이드 스튜디오에 junit 라이브러리가 없기 때문일 수 있습니다.


15

build.gradle 파일에 리포지토리 추가

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

13

아마도 gradle이 불완전 할 것입니다. 다음을 추가하는 것이 좋습니다.

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

그러나 경우에 따라 작동하지 않으면 gradle의 종속성에서 완전히 삭제할 수 있습니다.

사용자 폴더에있는 gradle 폴더 삭제 조건으로 android studio를 다시 설치하면 괜찮을 것이라고 생각합니다. .gradle


8

다음은 동일한 문제를 해결하기 위해 수행 한 작업입니다. 나는 당신이 생각하는 방화벽과 같은 문제입니다. 그래서 제거하려고했습니다

testCompile 'junit:junit:4.12' line 

그러나 그것은 나를 위해 작동하지 않았습니다. 아래 코드 줄을 추가하려고했습니다.

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

그조차도 저에게는 효과가 없었습니다.

모듈 설정의 라이브러리 종속성에서 Junit4.12를 제거 (-) 및 읽기 (+)하려고했습니다. 여전히 그것은 나를 위해 작동하지 않았습니다.

동기화 및 재 구축 프로젝트를 여러 번 시도했습니다. 여전히 나를 위해 일하지 않았다.

마지막으로 mvnrepository 웹 사이트에서 Junit4.12.jar 파일을 수동으로 다운로드했습니다. 이 jar 파일을 libs 폴더 내의 Project 폴더 아래 Androids Workspace에 넣습니다. 그런 다음 모듈 설정> 종속성 탭> (+)> 파일 종속성> Sleect 경로 창에서 'libs'폴더를 펼치면 거기에 복사 한 Jar 파일이 있습니다. 파일을 선택하고 '확인'을 클릭하십시오. 이제 종속성 목록에서 이전 버전의 junit4.12를 제거하십시오.

"libs\junit-4.12.jar"종속성 목록에 하나의 항목이 있어야 합니다. 이제 '확인'을 클릭하십시오.

이제 Gradle이 프로젝트를 다시 빌드 할 것입니다.

도움이 되었기를 바랍니다!


캐시를 무효화하고 Android Studio를 다시 시작했습니다.
Mohammedsalim Shivani

6

나는 Everithing을 시도 할 것이지만 문제를 해결하는 데 도움이되는 유일한 것은 줄을 삭제하는 것입니다.

testCompile 'junit:junit:4.12'

앱 gradel에서.


5

HTTPS가 프록시에 의해 차단 되었기 때문에 발생합니다. HTTPS를 사용하는 기본 jcenter에서 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

대부분이 문제는 프로젝트를 만들 때 Gradle 빌드가 실패 할 때 SDK를 업데이트 할 때 발생합니다. mavenjcenter 리포지토리를 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 단계 : maven 저장소에서 모든 jar 파일을 다운로드했습니다 : 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. Android Studio의 Android보기에서 gradle.properties로 이동하여 모든 프록시 구성을 삭제하십시오.
  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

파일-> 프로젝트 구조-> 종속성으로 이동하십시오.-> junit : unit : 4.12

오른쪽의 .. 드롭 다운에서 컴파일을 선택합니다. 간단합니다.

참조 이미지 : http://i.stack.imgur.com/5WvS3.png

레즈 VV


2

Android Studio 설치가 완전히 오프라인 상태입니다. 이러한 종류의 문제를 해결하기 위해 프로세스 모니터를 사용했습니다. "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"에 복사했습니다. "maven2"아래에있는 "m2repository"아래에 구조를 작성해야합니다. 누락 된 파일이 더있을 수 있지만 현재 Gradle 빌드는 오류없이 완료됩니다.


이 모든 답변에서 이것이 실제로 내 문제를 해결 한 유일한 방법이었습니다 (모두 테스트했습니다!). 물론 나를 위해 더 많은 리포지토리를 추가해야했지만 솔루션은 동일했습니다. 작동하지 않는 유일한 것은 "javax.annotation-api / 1.2"였으며 몇 번의 테스트 후에 종속성에서 제거해야했습니다. @ Tasko 감사합니다
주님 Sepid

2

나는 같은 문제가 있었다.

  • 1 옵션 : junit 4.12.jar를 다운로드하여 lib 폴더에 복사하고 android studio를 다시 시작하십시오. 새로운 프로젝트를 만들 필요가없는 이점

  • 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에는 프록시를 추가하지 않습니다. gradle.properties에 https에 대한 프록시 설정 추가


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 빌드가 너무 느리다는 것입니다!

thisL을 수행하여 문제를 해결했습니다.

mdew를 좋아한다면 프로젝트를 만들 때 마다이 작업을 수행해야합니다.

기본 옵션을 maven으로 설정하려면

이 작업을 수행:

폴더로 이동하십시오.

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

그런 다음 build.gradle.ftlnotepad ++ 또는 notepad로 파일을 열고 모두 jcenter()로 바꿉니다 mavenCentral().

편집 : 왜 추락 투표? 당신은 그것을 좋아하지 않습니까?


1

Android Studio가 gradle과 동기화되지 않은 이유를 해결할 수 없었습니다. VPN이 마음에 들지 않기 때문에 조심하십시오!


1

"속성"탭에서 "파일"-> "프로젝트 구조"-> "앱"으로 이동하십시오. "Library Repository" 필드 에 ' http://repo1.maven.org/maven2 '를 입력 한 다음 Ok를 누릅니다. 그것은 나를 위해 그렇게 고정되었습니다. 이제 프로젝트가 컴파일 중입니다.


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

    buildscript {}블록 내부의 프로젝트 레벨 build.gradle 파일로

  • 그런 다음 추가

    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-열심히 일하십시오

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.