エラー:(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'
}

jarがリポジトリにないようです。
Jens

JDK 7をインストールし、環境変数にパスを追加しました
fathurzero

Gradleにはどのリポジトリを使用しますか。
Jens

1
jarが存在するようです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ですか?
2016

1
buildTypesに追加する必要があります。追加しないと、エラーbuildTypesをgroovy.lang.Closureに適用できません
Sithu

どうjcenter()ですか?jcenter()リポジトリから削除する必要がありますか?
Hosein Aqajani 2016

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」を検索して、OKを押します)。OKを押して変更を適用します。約30秒後、gradleの同期は正常に機能します。

それもあなたのために働くことを願っています:D


3
私はこれを試しましたが、junitを追加しに行ったとき、そこにはありませんでした... wtf
Brew Dain

プロジェクトにjunitを手動で追加するには、左側から「build.gradle(Module:app)」ファイルを開きます。次の行を追加します。testCompile 'junit:junit:4.12' in the end of the file where between the dependency block and最後にプロジェクトを同期して、TOOLS> ANDROID> SYNC PROJECT WITH GRADLE FILES
Hasaan Ali

私にとってはうまくいきませんでした。再びjunit4.12を追加した後、OPと同じエラーが発生しました。
user13107 2017

15

junitライブラリを取得できません。

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

build.gradleファイルのandroidブロック内に上記の行を追加すると、問題が解決しました。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を削除(-)および再読み込み(+)してみました。それでも私にはうまくいきませんでした。

プロジェクトの同期と再構築を数回試しました。それでもうまくいきませんでした。

最後に、Jvn4.12.jarファイルをmvnrepository Webサイトから手動でダウンロードしました。このjarファイルをAndroidsワークスペースのlibsフォルダー内のProjectフォルダーに配置しました。次に、[モジュール設定]> [依存関係]タブ>(+)> [ファイルの依存関係]に移動し、[Sleectパス]ウィンドウで「libs」フォルダーを展開すると、そこにコピーしたJarファイルが見つかります。ファイルを選択して「OK」をクリックします。依存関係のリストから以前のバージョンのjunit4.12を削除します。

"libs\junit-4.12.jar"[依存関係]リストに1つのエントリがあるはずです。「OK」をクリックします。

これで、Gradleがプロジェクトを再構築します。これで問題ありません。

お役に立てれば!


キャッシュを無効にしてAndroid Studioを再起動しました。
Mohammedsalim Shivani

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、2016年

うーん..これは私の投稿で説明しようとしたものです。デフォルトでは、ブロックされているHTTPSを使用します。変更前と変更後を参照してください
jafarmlp

4

新しいプロジェクトを作成した後、このエラーを受け取りました。build.gradleファイルで、私はこれを持っていました:

jcenter()

私はそれを次のように変更し、エラーはなくなりました:

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

これは私がファイアウォールの後ろにいて、URLを指定してhttpsからhttpに変更したためだと思います


1
どうもありがとう 。この修正は私に役立ちました
Android_programmer_office 2016年

4

おそらくあなたはプロキシの背後にいます。私に起こった、モバイルテザリング(プロキシなし)再構築プロジェクトを使用し、エラーが消えました。元の接続(プロキシを使用)に戻り、エラーなしで再構築されます。


gradleのプロキシも指定する必要がありましたが、すべてのプロジェクトにログイン詳細を追加したくありませんでした。答えは、gradle.propertiesをユーザーディレクトリに追加することでした。この回答の詳細-stackoverflow.com/a/26524019/542629
walkingTarget 2016

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/" }
}

これらは後に追加する必要がある2行です

apply plugin: 'com.android.application' 

これは、これらの2行を追加した後のコードの外観です。

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はその1つで、その他は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. Android StudioのAndroidビューの下にあるgradle.propertiesに移動し、すべてのプロキシ設定を削除します
  4. 今すぐグラドルを同期する
  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/(私は2つのリンクしか投稿できません... ;-))

これらのファイルを「Android Studio \ gradle \ m2repository」にコピーしました。「mven2」の下にあるため、「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のプロキシは追加しません。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のビルドが遅すぎることでした!

thisLを実行して問題を解決しました

mdewが好きなら、これを行うためにプロジェクトを作成しているときはいつでもこれを行う必要があります

したがって、デフォルトのオプションをmavenに設定する場合

これを行う:

フォルダに移動します。

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

次に、build.gradle.ftlファイルをnotepad ++またはnotepadで開き、すべてjcenter()をに置き換えますmavenCentral()

編集:なぜその下落が投票されたのですか?嫌いですか?


1

Android StudioがGradleと同期しない理由を理解できませんでした。VPNが気に入らなかったことがわかったので、注意してください!


1

「プロパティ」タブの「ファイル」->「プロジェクト構造」->「アプリ」に移動します。[ライブラリリポジトリ] フィールドに「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()
    }

    内部のモジュールレベルのビルドgradleへ 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.