Android Studio 3.0中Robolectric 3.3.2单元测试依赖缺失求助
解决Robolectric 3.3.2缺失android-all:7.1.0_r7-robolectric-0依赖的问题
我之前在Android Studio里用Robolectric做MVP架构单元测试时,也碰到过一模一样的依赖缺失问题,给你几个亲测有效的解决思路:
1. 手动下载并安装依赖到本地Maven仓库
先找到android-all-7.1.0_r7-robolectric-0.jar安装包,再通过Maven命令把它安装到本地仓库,这样Robolectric就能正常识别到它了:
- 下载好jar包后,执行以下命令(记得把
/path/to/file替换成你实际的文件路径):
mvn install:install-file -DgroupId=org.robolectric -DartifactId=android-all -Dversion=7.1.0_r7-robolectric-0 -Dpackaging=jar -Dfile=/path/to/android-all-7.1.0_r7-robolectric-0.jar
2. 调整Robolectric版本或指定测试SDK版本
特定版本的Robolectric可能会绑定这个难拉取的android-all包,你可以试试升级Robolectric到3.4及以上版本(这些版本的依赖管理更稳定),或者直接在测试类里指定其他可用的SDK版本,比如:
@RunWith(RobolectricTestRunner.class) @Config(sdk = Build.VERSION_CODES.N) // 换成24版本,避开对7.1.0_r7包的依赖 public class YourPresenterTest { // 你的MVP测试代码 }
3. 完善Gradle仓库配置
检查项目根目录的build.gradle,确保添加了足够的仓库源,让Gradle能尝试拉取这个依赖:
allprojects { repositories { google() mavenCentral() maven { url 'https://oss.sonatype.org/content/groups/public/' } jcenter() // 部分旧依赖可能托管在jcenter } }
同时在模块的build.gradle里手动声明这个依赖:
testImplementation 'org.robolectric:robolectric:3.3.2' testImplementation 'org.robolectric:android-all:7.1.0_r7-robolectric-0'
之后点击Android Studio的「Sync Project with Gradle Files」按钮,重新同步项目。
4. 清理Android Studio缓存
有时候缓存异常会导致依赖拉取失败,你可以通过File -> Invalidate Caches... -> Invalidate and Restart清理缓存,重启后再尝试运行测试。
内容的提问来源于stack exchange,提问作者Amutharaj
相关产品推荐
相关产品推荐

