错误: (23,17)解析失败: junit: junit: 4.12

为什么每次我在 Android Studio 中创建一个新项目,总是会出现:

错误: (23,17)未能解析: junit: junit: 4.12?

当我删除依赖关系中的 testCompile 'junit:junit:4.12'时,它不再是一个问题。

建造,分级

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'
}
281758 次浏览

我也有同样的问题,通过在 build.gradle文件中添加缺少存储库的 url 解决了这个问题:

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

就是这样。

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

为我工作,我很快乐! :)

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

删除线 testCompile 'junit:junit:4.12'

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

之后再次同步项目。

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

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

在创建一个新项目后,我收到了这个错误:

jcenter()

我把它改成了下面这样错误就消失了:

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

我认为这是因为我在防火墙后面,并且指定了 URL,所以将它从 https 更改为 http

也许你是代理人的幕后黑手。发生在我身上的事情,使用我的移动共享(无代理)重建项目和错误消失。返回到原始连接(使用代理)并且没有错误地重新生成。

它无法获得 junit 库。

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

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

只需尝试编译和运行您的项目,而有活跃的互联网连接。

它在 Android 工作室1.5 Ubuntu 15.04中对我很有用

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

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

改变你的构建,像这样分级,为我工作:

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

可能是无法在指定的在线位置获得它,请检查 build.gradle (项目的 gradle 文件)的这一部分。您可能无法访问该位置(防火墙或其他问题)

repositories{
//some location like jcenter() or maven{.some location  }
}

这样做: 下载罐子 将此行添加到

repositories {
//previous codes untouched
flatDir {
dirs 'location to jar'
}
}

希望这能奏效;)

也许你的成绩不完整,我建议你添加以下内容

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

但在某些情况下不会工作,您可以完全删除它从您的依赖关系在您的分级。

我认为这将是确定的,如果你重新安装与删除用户文件夹 .gradle的渐变文件夹条件的 android 工作室

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

enter image description here

从那里开始:

  1. 删除 junit 库(选择 junit 并按下面的“-”按钮)
  2. 再次添加它(选择“ +”按钮下面,选择“库深”搜索“ junit”,按 OK)。按“确定”应用更改。大约30秒后,你的梯度同步应该可以正常工作。

希望对你也有用: D

试试这个:

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. 确保您不是代理服务器的幕后操纵者!
  2. 如果您将您的 Android Strudio 配置为使用代理,请确保 在 Android Studio 首选项下禁用该选项
  3. 在 Android Studio 中进入 Android 视图下的 gradle.properties,然后 删除所有代理配置
  4. 同步你的等级
  5. 享受编程吧!

转到文件-> 项目结构-> 依赖项 你会发现-> junit: unit: 4.12

在右边. . 从下拉列表中选择编译。 很简单,搞定了。

参考图片:http://i.stack.imgur.com/5WvS3.png

红军的 VV

如果你使用代理服务器,Android 工作室会为 Gradle 网站添加代理服务器,但不会为 https 添加代理服务器。 将 https 的代理设置添加到 gradle.properties

如果您在代理服务器之后,只需在 Gradle 房地产公司中添加代理设置

systemProp.http.proxyHost=x.xx.xx.x


systemProp.http.proxyPort=xxxx


systemProp.https.proxyHost=x.xx.xx.x


systemProp.https.proxyPort=xxxx

这招对我很管用。

下面是我解决同样问题的方法。我在防火墙后面,我想这和你的问题是一样的。 所以我尝试移除

testCompile 'junit:junit:4.12' line

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

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

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

我尝试从 Module Settings 下的库依赖项中删除(-)并读取(+) Junit4.12。 但我还是不喜欢。

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

最后,我所做的是从 mvnitory 网站手动下载 Junit4.12.jar 文件。我把这个 jar 文件放在 AndroidWorkspace 的 libs 文件夹中的 Project 文件夹下。 然后转到模块设置 > 依赖项选项卡 > (+) > 文件依赖项 > 在 Sleect path 窗口下,展开“ libs”文件夹,您将在其中找到您复制的 Jar 文件。 选择“文件”,然后单击“确定” 现在从依赖项列表中删除 junit4.12的早期版本。

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

现在,格拉德尔将重建项目,你应该是好去。

希望这个能帮上忙!

发生这种情况是因为 HTTPS 被代理阻塞。 尝试从默认的 jcenter (使用 HTTPS)更改为 HTTP. < br >

之前

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()
}

我的 Android Studio 安装完全是离线的。为了解决这类问题,我使用了流程监视器。它表明在“ Android Studio 等级 m2存储库”中缺少一些文件。 我已经下载了

  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/ (我只能发布两个链接... ; ——)

你必须在“ m2仓库”下面创建结构,就像它在“ maven2”下面一样。 也许有更多的文件丢失,但在这个时候,至少格拉德尔完成建设没有错误。

如果你面对这个问题,你完全可以通过改变来解决它:

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
}

我什么都试过了,但唯一能帮我解决这个问题的方法就是删除这行代码

testCompile 'junit:junit:4.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

大多数情况下,这个问题会在你更新 SDK 的时候出现,在项目创建的时候,Gradle build 失败了。如果您将 MavenJcenter存储库添加到您的 Gradle (模块: 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'
}
}
}

我也有同样的问题,不过是另一个问题。

我的另一个问题是,格拉德尔建设是太慢了!

我通过这个 L 解决了我的问题

如果你真的喜欢你需要这样做,任何时候,你创建你的项目,以做到这一点

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

这样做:

进入文件夹:

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

然后用记事本 + + 或记事本打开 build.gradle.ftl文件 并用 mavenCentral()代替所有 jcenter()

编辑: 为什么要投票表决? 你不喜欢吗?

我也有同样的问题。

  • 选项1: 下载 junit 4.12.jar 并将其复制到 lib 文件夹中,然后重新启动 android 工作室。好处你不必创造任何新的项目

  • 选项2: 创建一个新的项目有一个互联网连接和复制所有的 Java 和 XML 代码在新创建的项目。有利于这个问题的永久解决

仔细寻找许多答案,但没有一个是有效的。幸运的是找到了简单的解决办法。不需要注释 junit4.12或删除它。问题在于:

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

这一部分向我们展示了在项目中的库中查找文件的路径。不知道为什么,但出于某种原因,默认它是空的。在我的例子中,路径是:

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

当然,你可以在代码 build.grandle(Module.app)中删除这一行,但是你以后可能需要它:

1-download junit-4.12.jar 或者从您的 Android Studio 文件夹中复制它,通常它应该在那里。对我来说,就在这里:

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

到上面提到的目录(到您的项目)

2-删除和添加

here you should re-enter the root to your junit-4.12.jar

3-重建

4-努力工作

我不明白为什么 Android Studio 不能与 gradle 同步。原来它不喜欢我的 VPN,所以小心了!

错误是由于缺少 jar 文件造成的。我的简单解决方案是将所有未解析的文件复制到 C: Program Files Android Studio gradle m2仓库... (您的文件路径可能不同)。我得到了大约6个无法解决的依赖项,junit 是其中之一,其他的依赖项是 com、 org 和 javax。由于我身处防火墙之后,即使我添加了存储库的代码,Android Studio 似乎也无法访问它。我去了 Maven 存储库,下载了所有无法解析的文件。问题解决了,而且格拉德尔同步没有错误。但我是一个认证的新手,只有1天的经验,所以我不会,如果这是正确的方式做到这一点。

示例错误: 无法解析 com: squareup: javawriter: 2.1.1

步骤1: 我创建了一个路径 C: Program Files Android Studio gradle m2itory com squareupjavawriter 2.1.1

步骤2: 我从 maven 存储库下载了所有 jar 文件: Http://repo1.maven.org/maven2/com/squareup/javawriter/2.1.1/

步骤3: 我从这个目录手动下载了所有的.jar 文件

步骤4: 我将它们复制到 C: Program Files Android Studio gradle m2itory com squareupjavawriter 2.1.1

我对所有未解析的文件(包括 junit)重复了这一操作。

对于 junit,下面是我创建的目录: C: Program Files Android Studio gradle m2itory junit junit 4.12 然后我将 junit-4.12.jar 复制到这个目录中,junit 错误就消失了。

转到“文件”-> “项目结构”-> “应用程序” 在标签“属性”。在“库存储库”场地放’http://repo1.maven.org/maven2’然后按确定。 就是这样安排的,现在项目正在编译。

只要连接到互联网,启动 Android Studio 并打开您的项目。 当它同步的时候,它会从互联网上下载依赖项(所有的 JAR 文件)。这解决了我的问题。 无编辑在 Gradle 文件,所有这一切都是由安卓工作室自动完成。 使用 Android Studio 2.2:)

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

当您不在公司防火墙之后时,使用 Android Studio 将自然地解决这个问题。但是,如果您位于公司防火墙之后,就会出现这个问题。因此,下载文件将是一个解决方案。在您自己的家庭网络上,更新 Android Studio 将解决这个问题,并要求您删除您手动创建的那些文件。只要按确定,因为它是安全的删除他们。

我很乐意提出一个非常适合我情况的解决方案:

  • 首先,确保加入

    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{ }内部的模块级构建级别

将存储库更改为除 jcenter()以外的 mavenCentral(),一切正常

在我的情况下,这是非常奇怪的!除了添加一个正确的代理(我在一家公司工作) ,我还需要在依赖项中添加另外两个库:

compile 'com.android.support:appcompat-v7:25.0.1'
compile 'com.android.support:design:25.0.1'

然后解决了“ junit: junit: 4.12”的错误。 确保 build.gradle 中的所有依赖项与您在 project structure 中导入的内容相匹配

如果任何一个得到错误“未能解决-junitjunit4-12”,然后转到 HTTP 代理设置检查您的互联网连接。如果您使用任何代理服务器在学校/学院,然后设置您的代理设置和测试连接,如果它成功,然后应用设置和运行再次分级您将得到解决所有错误。我尝试这个,我解决所有的错误。 注意: 没有必要删除 Junit... ! ! 乌迈尔

我有同样的问题,但是当我打开我的项目与互联网连接,我得到一切清除时,渐变建立一个同步它自动下载相关文件和 J 单元插件是测试所需要的

如果没有任何答案,请尝试清除 Android Studio 缓存/重新启动。这是唯一对我有效的方法:

从文件菜单选项中,我选择了“无效缓存/重新启动”。

Https://teamtreehouse.com/community/gradle-project-sync-failed-7

你应该把 Java 写到 windows 上。

  1. 打开这个地址: “控制面板系统和安全系统”
  2. 从左边选择“高级系统设置”
  3. 在“高级”选项卡中,选择“环境变量”
  4. 在打开的窗口中,在“系统变量”下面,选择“新建”。
  5. 将变量名设置为 JAVA_HOME,将变量值设置为安装 Java 的地址。例如,对我来说,它是 C:\ProgramFiles\Java\jdk1.8.0_66。然后,点击 OK 按钮。
  6. 重启 Android Studio

在我的情况下,解决方案是添加

repositories {
mavenCentral()
}

到 buildTypes {}中的模块级构建级别

假设没有它,AndroidStudio 就不能从 maven 下载 junit。

对我来说,这只是因为互联网连接。也许是一些代理或 wifi 防火墙或其他东西,可能是干扰连接(因为当我访问的链接手动 给你铬说,该文件可能会损害您的计算机)。因此,我尝试使用另一个连接,这样从我的手机共享热点。

这个答案可能有点晚了,但是在花了几个小时研究这些答案之后,没有一个对我有用的。 在耐心地阅读了错误日志之后,我意识到 android 工作室试图使用一个缓存版本的 JUnit 和一个错误的哈希代码。 解决方案是删除 C:\Android\caches\modules-2目录并重新启动构建。

希望这个能帮上忙!

以前:

testImplementation 'junit:junit:4.12'
androidTestImplementation 'com.android.support.test:runner:1.0.2'
androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'

之后:

testİmplementation 'junit:junit:4.12'
androidTestİmplementation 'com.android.support.test:runner:1.0.2'
androidTestİmplementation 'com.android.support.test.espresso:espresso-core:3.0.2'

对我有用。

对我来说,我只需要加上:

allprojects {
repositories {
jcenter()
maven { url 'https://maven.google.com' }
}

}

擦除所有 Junit 依赖项,并将其添加到依赖项上。

testImplementation 'junit:junit:4.12'
androidTestImplementation 'androidx.test.ext:junit:1.1.2'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.3.0'
androidTestImplementation 'androidx.test:runner:1.3.0'
androidTestImplementation 'androidx.test:rules:1.3.0'
androidTestImplementation 'androidx.test:core:1.3.1-alpha02'

我也遇到了同样的问题,通过一个简单的修改,添加“ junit: junit: 4. +”就解决了

dependencies {


testImplementation 'junit:junit:4.+'


}