Conflict with dependency 'com.android.support:support-annotations'解决方案
Conflict with dependency ‘com.android.support:support-annotations’解决方案
今天同步项目的时候,Android报了Conflict with dependency ‘com.android.support:support-annotations’的错误,于是在这里记录一下:
完整的错误如下:
Error:Execution failed for task ':app:preDebugAndroidTestBuild'.
Conflict with dependency 'com.android.support:support-annotations' in project ':app'. Resolved versions for app (25.3.1) and test app (25.4.0) differ. See https://d.android.com/r/tools/test-apk-dependency-conflicts.html for details.
根据错误提示,可以知道com.android.support:support-annotations依赖冲突了,App是25.3.1,而test APP是25.4.0
于是按照网上的教程,添加以下依赖:
dependencies {androidTestCompile 'com.android.support:support-annotations:25.4.0'
}
Sync以后,结果发现并没有什么卵用,依然报上述的错误.
有效的解决方案
最后在StackOverflow上找到了有效的解决方案:
1. 强行指定依赖.Android studio你个抖M,看来需要来点硬♂的.
dependencies {configurations.all {resolutionStrategy.force 'com.android.support:support-annotations:25.4.0'}
}
- 如果你不喜欢来硬♂的,也有第二种解决方式,使用以下依赖:
dependencies {testImplementation 'junit:junit:4.12'androidTestImplementation('com.android.support.test.espresso:espresso-core:2.2.2', {exclude group: 'com.android.support', module: 'support-annotations'})
}
替换:
androidTestCompile 'com.android.support.test:runner:1.0.1'
androidTestCompile 'com.android.support.test.espresso:espresso-core:3.0.1'
如果你只是想解决上面个问题,就可以右上角点×了,以下纯属我瞎JB乱扯:
由于之前的项目,由于不懂事,觉得测试用例没什么卵用,就删了!以下是重新为项目引入Android Unit Test和Android Instrument Test支持.
说明
- Android Unit Test: 可以脱离emulator和device独立运行在jvm的测试方式.(也就是说,如果我们需要写一些java代码,又不想在手机或者模拟器中运行,也不想打开Eclipse或者Intellij idea,就可以在这里面编写运行)
- Android Instrument Test: 它是运行在emulator和device上的测试方式.
Android studio新建项目的时候,默认会支持两种测试用例包括Android Instrument Test和Android Unit Test,会在模块的build.gradle中默认引入以下依赖:
android{defaultConfig {//这句必须有,否则在运行测试用例的时候,会报Test running failed: Unable to find instrumentation info for......的错误testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"}
}
dependencies {testImplementation 'junit:junit:4.12'androidTestImplementation 'com.android.support.test:runner:1.0.1'androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.1'
}
并在模块的/src
目录下生成androidTest和test文件夹,如下图两个箭头所示:
可能你们注意到了,Android studio也友好的分别为我们在/androidTest
文件夹和/test
文件夹生成了ExampleInstrumentedTest
类和ExampleUnitTest
类,作为给我们开发人员一个参考demo,这个两个类的代码如下:
/*** Instrumented test, which will execute on an Android device.** @see <a href="http://d.android.com/tools/testing">Testing documentation</a>*/
@RunWith(AndroidJUnit4.class)
public class ExampleInstrumentedTest {@Testpublic void useAppContext() throws Exception {// Context of the app under test.Context appContext = InstrumentationRegistry.getTargetContext();assertEquals("com.example.dingx.messagepushdemo", appContext.getPackageName());}
}
/*** Example local unit test, which will execute on the development machine (host).** @see <a href="http://d.android.com/tools/testing">Testing documentation</a>*/
public class ExampleUnitTest {@Testpublic void addition_isCorrect() throws Exception {assertEquals(4, 2 + 2);}
}
具体集成方式
既然Android studio有现成的,于是按照Android studio新建项目时所依赖的东西,添加到现有项目中,并分别新建test文件夹和androidTest文件夹,注意以下引用不要忘了:
android{defaultConfig {//这句必须有,否则在运行测试用例的时候,会报Test running failed: Unable to find instrumentation info for......的错误testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"}
}
当需要为当前类写测试用例的时候,右键空白处,依次选择以下选项即可:
关于Android studio集成其它第三方测试框架的方式,例如Robolectric,Espresso,Robotium,这里就不介绍了(其实我也没集成过:P).
Conflict with dependency 'com.android.support:support-annotations'解决方案相关推荐
- Conflict with dependency com.android.support-annotations' in project':app'.Resolved ...解决方法
今天新建一个项目的时候在构建过程中出现如下的问题: 这个错误的大概意思是:我的名为app的module里,com.android.support:support-annotations这个依赖冲突了, ...
- Android Design Support Library初探-更新中
导读 这个兼容库容易和Google之前发布的 Android Support Library 22.1 混淆,两者的区别在于: Android Support Library 22.1 只是支持了一些 ...
- Unity Hub安装Android Build Support报错:Failed to delete old Unity Android Supprtinstallation files
安装失败: 解决方法: 需要先安装 Android Build Support ,再安装 Android SDK & NDK Tools 和 OpenJDK 其他情况: 如果已经安装了Andr ...
- Android开发:《Gradle Recipes for Android》阅读笔记(翻译)5.2——使用Android Testing Support Library进行测试...
问题: 你想要测试app的Android组件. 解决方案: 使用新的测试类实现JUnit风格的测试. 讨论: 测试像activities,services等的Android组件,需要将app部署到连接 ...
- Android Studio support 26.0.0-alpha1 Failed to resolve: com.android.support:appcompat-v7:27.+ 报错解决方法
Android Studio support 26.0.0-alpha1 Failed to resolve: com.android.support:appcompat-v7:27.+ 报错解决方法 ...
- Android Design Support Library 中控件的使用简单介绍(一)
Android Design Support Library 中控件的使用简单介绍(一) 介绍 在这个 Lib 中主要包含了 8 个新的 material design 组件!最低支持 Android ...
- Material Design 开发利器:Android Design Support Library 介绍
Material Design 开发利器:Android Design Support Library 介绍 本文翻译自著名博客 Android Developers,原作者是 Ian Lake,点击 ...
- Android Design Support Library--简约而不简单的SnackBar
引言 在之前我有提到这一篇Android Design Support Library系列文章是关于SnackBar的,但是由于要用到CoordinatorLayout所以先翻译了一篇相关文章,如果还 ...
- Android Design Support Library 的 代码实验——几行代码,让你的 APP 变得花俏
目前,我相信,没有任何 Android 开发者不知道材料设计的,因为它的设计在过去的一年震惊了世界,正式的变成了一个设计理念. 令人惊讶的是,在 Android 应用中材料设计是不容易实现的,因为材料 ...
最新文章
- redhat 6.0 Enterprise企业版如何使用yum安装软件
- SAP IQ09 可以批量查询序列号数据
- bootstrap modal垂直居中(简单封装)
- how to become an expert in excel
- 计算机应用基础寒假作业,计算机应用基础理论试卷寒假作业.doc
- wordpressQQ登陆php代码,仅在登录时使用wordpress PHP代码
- 数仓出现“wait in ccn queue”的时候,怎么迅速定位处理?
- FPGA时钟资源PLL与DLL区别
- 如何在Mac上控制对日历的访问?
- java spring定时器_JAVA中 Spring定时器的两种实现方式
- Java字节码插桩玩法(Javassist)
- 网络监测用计算机安全管理制度,计算机信息网络安全管理制度
- 用C语言开发一个BT下载软件(一) ------ BitTorrent协议 -2
- Photoshop常用的技巧有哪些?
- python 权限认证 impala_python操作具有kerberos认证的hive(impala)
- 三维向量求夹角(0-360)
- 深入浅出Java Object Layout (JOL)
- Leetcode岛屿问题系列分析
- HT1382时钟芯片代码
- 输入一个年月日,计算这一天到公元元年有多少天
热门文章
- 实现 DirectShow 虚拟 Camera 驱动
- 病毒组学数据分析 -03 Virsorter2病毒序列识别
- 电动卡车的升级!我们的生活离自动驾驶来有多远?
- 学英语从背单词开始,但背单词要适可而止
- 最近学习dp的阶段小结(一)
- 片袖原型制图_服装工艺八种袖子原型的制图画法
- VMware如何彻底删除干净?
- 单细胞分析实录(7): 差异表达分析/细胞类型注释
- 质量员考试建筑八大员考试消防建筑设施施工质量存在的问题
- 用c语言写简单的游戏名字大全,适合女生的游戏名字,适合女生的游戏名字大全4个字...