错误:(23、17)无法解决:junit:junit:4.12

Posted

技术标签:

【中文标题】错误:(23、17)无法解决:junit:junit:4.12【英文标题】:Error:(23, 17) Failed to resolve: junit:junit:4.12 【发布时间】:2015-12-07 18:20:25 【问题描述】:

为什么我每次在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 不在你的存储库中。 如何处理?我已经安装了JDK 7,并且在环境变量中添加了路径 你为 gradle 使用哪个仓库。 看起来罐子已经存在jcenter.bintray.com/junit/junit/4.12 检查我的新答案:***.com/a/38151747/5733853 【参考方案1】:

我遇到了同样的问题。通过在build.gradle 文件中添加缺少存储库的 url 解决:

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

就是这样。

【讨论】:

这绝对解决了我的问题,所以至少我现在可以同步 gradle-sync 造成这种情况的根本原因是什么? 这确实解决了问题,但是maven是什么? 应该在buildTypes上面加上,否则会出现buildTypes cannot be applied to groovy.lang.Closure的错误。 jcenter() 呢?是否有必要从存储库中删除jcenter()【参考方案2】:

只需从 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'
 

为我工作,我很高兴! :)

请记住,这不是这个问题的实际答案。我提到这一点是因为当你删除上面的行时它会起作用。

【讨论】:

【参考方案3】:

转到文件 -> 项目结构。将打开以下窗口:

从那里:

    删除junit库(选择junit并按下下方的“-”按钮)并 再次添加(选择下方的“+”按钮,选择“library dep.”,搜索“junit”,按OK)。按 OK 应用更改。大约 30 秒后,您的 gradle 同步应该可以正常工作了。

希望它也适合你:D

【讨论】:

我试过这个,但是当我去添加junit时它不存在...... wtf 要手动将junit添加到项目中,请从左侧打开“build.gradle (Module: app)”文件。添加这一行: testCompile 'junit:junit:4.12' 在文件末尾的依赖项块之间的任何位置,最后通过转到 TOOLS > ANDROID > SYNC PROJECT WITH GRADLE FILES 来同步项目 对我不起作用。再次添加 junit4.12 后,它给出了与 OP 相同的错误。【参考方案4】:

无法获取junit库。

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

在 build.gradle 文件的 android 块内添加上述行后,它解决了问题。 这可能是因为您的 Android 工作室没有 junit 库。

【讨论】:

【参考方案5】:

在您的 build.gradle 文件中添加存储库

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

【讨论】:

【参考方案6】:

可能你的gradle不完整,我建议你添加以下

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

但在某些情况下不起作用,您可以将其从 gradle 中的依赖项中完全删除。

我认为如果您重新安装 android studio 并删除用户文件夹 .gradle 中的 gradle 文件夹条件,就可以了

【讨论】:

【参考方案7】:

这是我为解决相同问题所做的。我在防火墙后面,我想这和你的问题一样。 所以我尝试删除

testCompile 'junit:junit:4.12' line 

但这对我不起作用。 我尝试添加以下代码行:

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

即使那样对我也不起作用。

我尝试从模块设置下的库依赖项中删除 (-) 和读取 (+) Junit4.12。 仍然对我不起作用。

尝试了多次同步和重建项目。仍然不适合我。

最后我做的是从 mvnrepository 网站手动下载 Junit4.12.jar 文件。我将此 jar 文件放在 libs 文件夹内的 Project 文件夹下的 Androids 工作区中。 然后转到模块设置 > 依赖项选项卡 > (+) > 文件依赖项 > 在选择路径窗口下,展开“libs”文件夹,您将在其中找到您复制的 Jar 文件。 选择文件并单击“确定” 现在从依赖列表中删除以前版本的junit4.12。

您应该在依赖项列表中有一个条目"libs\junit-4.12.jar"。 现在点击“确定”。

现在 Gradle 将重建项目,您应该可以开始了。

希望这会有所帮助!

【讨论】:

我刚刚使缓存失效并重新启动了Android Studio。【参考方案8】:

这是因为 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/"
    
  

或者从 jcenter 更改为 mavenCentral 也有效

repositories 
   mavenCentral()

【讨论】:

代理时无效,HTTP流量有效,HTTPS流量被禁止。 嗯.. 这就是我试图在我的帖子中解释的内容。默认情况下,它使用被阻止的 HTTPS。查看之前和之后【参考方案9】:

我会尝试一切,但唯一能帮助我解决问题的是删除该行

testCompile 'junit:junit:4.12'

来自应用程序。

【讨论】:

【参考方案10】:

我在创建新项目后收到此错误。在 build.gradle 文件中,我有这个:

jcenter()

我将其更改为以下内容,错误消失了:

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

我认为这是因为我在防火墙后面,并且像这样指定 url 将其从 https 更改为 http

【讨论】:

非常感谢。这个修复帮助了我【参考方案11】:

可能你在代理后面。发生在我身上,使用我的移动网络共享(无代理)重建项目,错误消失了。返回到原始连接(使用代理)并重建没有错误。

【讨论】:

我还需要为 gradle 指定一个代理,但我不想将我的登录详细信息添加到每个项目中。答案是在我的用户目录中添加一个 gradle.properties。此答案中的更多信息 - ***.com/a/26524019/542629.【参考方案12】:

您是否使用代理?如果是这样,问题可能在于您的 gradle.properties 文件中缺少 https 的网络配置。

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

【讨论】:

【参考方案13】:

这个问题通常会在您更新 SDK 时出现,在项目创建时 Gradle 构建失败。如果您将 ma​​venjcenter 存储库添加到您的 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'
        
    

【讨论】:

【参考方案14】:

该错误是由于缺少 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错误消失了。

【讨论】:

【参考方案15】:
    确保您没有使用代理! 如果您将 Android Strudio 配置为使用代理,请确保 在 Android Studio 首选项下禁用该选项 在 Android Studio 的 Android 视图下转到 gradle.properties 并 删除所有代理配置 立即同步您的 gradle 享受编码!

【讨论】:

【参考方案16】:

像这样改变你的 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

【讨论】:

【参考方案17】:

转到文件 -> 项目结构 -> 依赖项 在那里你会找到 -> junit:unit:4.12

在右侧..从下拉列表中选择编译。 简单..它完成了。

参考图片:

红军 VV

【讨论】:

【参考方案18】:

我安装的 Android Studio 完全离线。为了解决这类问题,我使用了 Process Monitor。它表明“Android Studio\gradle\m2repository”中缺少一些文件。 我已经从

下载了所有文件
    http://repo1.maven.org/maven2/junit/junit/4.12/ http://repo1.maven.org/maven2/org/hamcrest/hamcrest-core/ repo1.maven.org/maven2/org/hamcrest/hamcrest-parent/1.3/ (我只能发布两个链接...;-))

并将这些文件复制到“Android Studio\gradle\m2repository”中。您必须在“m2repository”下方创建结构,因为它位于“maven2”下方。 也许还有更多丢失的文件,但此时至少 Gradle 构建完成且没有错误。

【讨论】:

在所有这些答案中,这是唯一真正解决了我的问题的答案(我对它们都进行了测试!)。当然,对我来说,它需要添加更多存储库,但解决方案是相同的。唯一不起作用的是“javax.annotation-api/1.2”,经过几次测试后,我不得不将其从依赖项中删除。谢谢@Tasko【参考方案19】:

我遇到了同样的问题。

1 选项:下载 junit 4.12.jar 并将其复制到您的 lib 文件夹中并重新启动 android studio。好处你不必创建任何新项目

2 选项:创建一个具有 Internet 连接的新项目,并复制新创建的项目中的所有 java 和 XML 代码。受益此问题将得到永久解决

【讨论】:

【参考方案20】:

查看许多答案,但没有任何效果。幸运的是找到了简单的解决方案。无需评论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 - 删除和添加

3 - 重建

4 - 努力工作

【讨论】:

【参考方案21】:

删除testCompile 'junit:junit:4.12'这一行

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

之后再次同步项目。

【讨论】:

【参考方案22】:

只需尝试在具有有效互联网连接的情况下编译和运行您的项目。

它在 Android Studio 1.5 Ubuntu 15.04 中对我有用

【讨论】:

【参考方案23】:
dependencies 
    compile fileTree(dir: 'libs', include: ['*.jar'])
       compile 'com.android.support:appcompat-v7:23.1.1'

注意:删除 testCompile 'junit:junit:4.12' 行已经解决了我的问题。

【讨论】:

【参考方案24】:

试试这个:

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'

【讨论】:

【参考方案25】:

如果您使用代理。 Android Studio 会将 http 代理添加到 Gradle,但不会为 https 添加代理。 将 https 的代理设置添加到 gradle.properties

【讨论】:

【参考方案26】:

如果您遇到此问题,您可以通过更改完全解决:

build.gradle(project: ...)

替换这个

    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

【讨论】:

【参考方案27】:

我有同样的问题,但有另一个问题。

我的另一个问题是 Gradle 构建太慢了!

我通过这样做解决了我的问题L

如果您喜欢 mdew,则在创建项目时需要这样做

所以如果你想将默认选项设置为 maven

这样做:

转到文件夹:

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

然后用notepad++或者notepad打开build.gradle.ftl文件 并将所有jcenter() 替换为mavenCentral()

编辑:为什么它被否决了?你不喜欢吗?

【讨论】:

【参考方案28】:

我不明白为什么 Android Studio 没有与 gradle 同步。原来它不喜欢我的 ***,所以要小心!

【讨论】:

【参考方案29】:

转到“文件”->“项目结构”->“应用程序” 在“属性”选项卡中。在“库”field 中输入“http://repo1.maven.org/maven2”,然后按确定。 对我来说就是这样固定的。现在项目正在编译中。

【讨论】:

【参考方案30】:

只需连接到 Internet 并启动 Android Studio 并打开您的项目。 在 Gradle Sync 时,它将从 Internet 下载依赖项(所有 JAR 文件)。这为我解决了。 Gradle 文件中没有编辑,全部由 Android Studio 自动完成。 使用 Android Studio 2.2 :)

另外不要忘记安装 Java JDK 1.x(7 或 8 都可以正常工作)。

【讨论】:

以上是关于错误:(23、17)无法解决:junit:junit:4.12的主要内容,如果未能解决你的问题,请参考以下文章

Ubuntu安装Junit

第17天(基础加强_注解_类加载器_动态代理)_学习目标版本

Maven的继承

Spring Junit集成测试

0002SpringBoot整合Junit

同一对象的 JUnit 测试