错误:(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 构建失败。如果您将 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'
【讨论】:
【参考方案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的主要内容,如果未能解决你的问题,请参考以下文章