robolectric 依赖库加载缓慢

2024-09-01 11:08

本文主要是介绍robolectric 依赖库加载缓慢,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

robolectric 依赖库下载各种踩坑。。。

1.gradlew test 运行单元测试用例报错如下:
org.apache.maven.artifact.resolver.MultipleArtifactsNotFoundException

com.tencent.next.MainActivityTest > testActivity FAILEDorg.apache.tools.ant.BuildExceptionCaused by: org.apache.maven.artifact.resolver.MultipleArtifactsNotFoundException

增加–info参数查看具体出错信息,提示依赖库文件下载失败,要不连接超时,一直卡在70%的进度

com.tencent.next.MainActivityTest > testActivity STANDARD_OUT[WARNING] Unable to get resource 'org.robolectric:android-all:jar:5.0.0_r2-robolectric-1' from repository central (http://repo1.maven.org/maven2): Error transferring file: Connection timed out: conne
ct
com.tencent.next.MainActivityTest > testActivity STANDARD_ERRORDownloading: org/robolectric/shadows-core-v21/3.1.4/shadows-core-v21-3.1.4.jar from repository sonatype at https://oss.sonatype.org/content/groups/public/Error transferring file: Connection timed out: connect
com.tencent.next.MainActivityTest > testActivity STANDARD_OUT[WARNING] Unable to get resource 'org.robolectric:shadows-core-v21:jar:3.1.4' from repository sonatype (https://oss.sonatype.org/content/groups/public/): Error transferring file: Connection timed out
: connect

解决过程:

手动下载,放到对应目录下
C:\Users\用户名.gradle\caches\modules-2\files-2.1\org.robolectric ,可是依旧找不到,还check sha值是不是写错了,难受香菇;

然后在build.gradle里配置依赖,让gradle去下载,可以下载回来, C:\Users\用户名.gradle\caches\modules-2\files-2.1\org.robolectric目录下也有了对应jar包,运行依然报连接超时等错误,看起来robolectric显然不认~/.gradle/的账。
得出结论:
robolectric依赖的本地目录 与 gradle依赖的本地目录不相同。

robolectric的依赖库,本地放在C:\Users{用户名}.m2\repository\org\robolectric,但我一直用gradle,没有配置maven。想试图搞一下,可是这样做有弊端,其他同事也会遇到我的问题,那每个人都需要配置,成本太高。放弃

之前用ant编译robolectric单元测试时候,自己下载好jar包,指定库的目录就好,顺着这个思路去查,找到了解决方法。

在build.gradle目录配置如下

 testOptions {unitTests.all {systemProperty 'robolectric.offline', 'true'systemProperty 'robolectric.dependency.dir', 'C:\\Users\\cicichang\\.gradle\\caches\\modules-2\\files-2.1\\org.robolectric\\android-all\\5.0.0_r2-robolectric-1\\7c63cd7aeb55d63e3e208b77882831c7ac588ed8'}}

robolectric.offline//设置为true 关闭jar包的动态获取
robolectric.dependency.dir//在offline模式的时候,指定一个文件夹来包含运行时依赖
robolectric.enabledSdks//逗号隔开的sdklevel或者名字列表是对进程可用的,在运行的时候只测试在list中指定的sdk。默认是所有sdk都是可用的
robolectric.dependency.repo.id//为运行时依赖设置maven依赖库的id(默认是sonatype)
robolectric.dependency.repo.url//设置maven库url(默认https://oss.sonatype.org/content/groups/public/)
rebolectric.logging.enabled//设置为true打开默认logging
6.运行gradlw test,运行成功

附录:
1.在build.gradle里配置

dependencies {testImplementation "org.robolectric:robolectric:$rootProject.ext.robolectricVersion"testImplementation "org.robolectric:robolectric-annotations:$rootProject.ext.robolectricVersion"testImplementation:org.robolectric:android-all:5.0.0_r2-robolectric-1'testImplementation "org.robolectric:robolectric-annotations:$rootProject.ext.robolectricVersion"testImplementation "org.robolectric:shadows-support-v4:$rootProject.ext.robolectricVersion"
}

其中robolectricVersion在根目录的build.gradle里配置


ext {robolectricVersion = '3.1.4'}    

注意:testImplementation:org.robolectric:android-all:5.0.0_r2-robolectric-1’如果不在这里指定,通过@Config(constants = BuildConfig.class , sdk = 21) 也可以指定依赖的sdk版本号。

参考:
https://www.jianshu.com/p/3ccf867784fc
http://robolectric.org/

这篇关于robolectric 依赖库加载缓慢的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1126766

相关文章

Maven如何手动安装依赖到本地仓库

《Maven如何手动安装依赖到本地仓库》:本文主要介绍Maven如何手动安装依赖到本地仓库问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、下载依赖二、安装 JAR 文件到本地仓库三、验证安装四、在项目中使用该依赖1、注意事项2、额外提示总结一、下载依赖登

Spring Boot循环依赖原理、解决方案与最佳实践(全解析)

《SpringBoot循环依赖原理、解决方案与最佳实践(全解析)》循环依赖指两个或多个Bean相互直接或间接引用,形成闭环依赖关系,:本文主要介绍SpringBoot循环依赖原理、解决方案与最... 目录一、循环依赖的本质与危害1.1 什么是循环依赖?1.2 核心危害二、Spring的三级缓存机制2.1 三

Python如何自动生成环境依赖包requirements

《Python如何自动生成环境依赖包requirements》:本文主要介绍Python如何自动生成环境依赖包requirements问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑... 目录生成当前 python 环境 安装的所有依赖包1、命令2、常见问题只生成当前 项目 的所有依赖包1、

springboot循环依赖问题案例代码及解决办法

《springboot循环依赖问题案例代码及解决办法》在SpringBoot中,如果两个或多个Bean之间存在循环依赖(即BeanA依赖BeanB,而BeanB又依赖BeanA),会导致Spring的... 目录1. 什么是循环依赖?2. 循环依赖的场景案例3. 解决循环依赖的常见方法方法 1:使用 @La

Spring Boot 配置文件之类型、加载顺序与最佳实践记录

《SpringBoot配置文件之类型、加载顺序与最佳实践记录》SpringBoot的配置文件是灵活且强大的工具,通过合理的配置管理,可以让应用开发和部署更加高效,无论是简单的属性配置,还是复杂... 目录Spring Boot 配置文件详解一、Spring Boot 配置文件类型1.1 applicatio

SpringBoot项目启动报错"找不到或无法加载主类"的解决方法

《SpringBoot项目启动报错找不到或无法加载主类的解决方法》在使用IntelliJIDEA开发基于SpringBoot框架的Java程序时,可能会出现找不到或无法加载主类com.example.... 目录一、问题描述二、排查过程三、解决方案一、问题描述在使用 IntelliJ IDEA 开发基于

Android WebView无法加载H5页面的常见问题和解决方法

《AndroidWebView无法加载H5页面的常见问题和解决方法》AndroidWebView是一种视图组件,使得Android应用能够显示网页内容,它基于Chromium,具备现代浏览器的许多功... 目录1. WebView 简介2. 常见问题3. 网络权限设置4. 启用 JavaScript5. D

SpringBoot项目启动错误:找不到或无法加载主类的几种解决方法

《SpringBoot项目启动错误:找不到或无法加载主类的几种解决方法》本文主要介绍了SpringBoot项目启动错误:找不到或无法加载主类的几种解决方法,具有一定的参考价值,感兴趣的可以了解一下... 目录方法1:更改IDE配置方法2:在Eclipse中清理项目方法3:使用Maven命令行在开发Sprin

Python依赖库的几种离线安装方法总结

《Python依赖库的几种离线安装方法总结》:本文主要介绍如何在Python中使用pip工具进行依赖库的安装和管理,包括如何导出和导入依赖包列表、如何下载和安装单个或多个库包及其依赖,以及如何指定... 目录前言一、如何copy一个python环境二、如何下载一个包及其依赖并安装三、如何导出requirem

Python如何快速下载依赖

《Python如何快速下载依赖》本文介绍了四种在Python中快速下载依赖的方法,包括使用国内镜像源、开启pip并发下载功能、使用pipreqs批量下载项目依赖以及使用conda管理依赖,通过这些方法... 目录python快速下载依赖1. 使用国内镜像源临时使用镜像源永久配置镜像源2. 使用 pip 的并