You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Android Studio4.2.2升级后测试失败 maven仓库HTTP报错如何解决

问题根因

你遇到的问题并非Android Studio 4.2.2默认修改了mavenCentral的请求协议,而是当前使用的4.3.1版本Robolectric内置了HTTP协议的默认中央仓库地址,同时Robolectric 4.3.1与Android Studio 4.2默认搭载的JDK11存在SSL适配兼容问题,共同导致了测试执行失败。

解决方案

优先推荐方案2,新版本Robolectric还修复了大量已知问题,适配更高版本的Android SDK和构建工具。

方案1:强制指定Robolectric依赖仓库为HTTPS协议

在项目根目录的gradle.properties文件中添加以下配置:

# 强制Robolectric使用HTTPS协议的maven中央仓库拉取依赖
robolectric.dependency.repo.url=https://repo1.maven.org/maven2
robolectric.dependency.repo.id=central

同时在模块级build.gradle中添加测试VM参数,解决SSL适配错误:

android {
    // 其他配置保持不变
    testOptions {
        unitTests.all {
            jvmArgs '-Djavax.net.ssl.trustStoreType=jks'
        }
    }
}

方案2:升级Robolectric到兼容版本

将Robolectric依赖版本升级到4.5及以上稳定版,新版本已默认使用HTTPS仓库地址,同时修复了JDK11的适配问题:

dependencies {
    // 替换原有Robolectric依赖版本
    testImplementation 'org.robolectric:robolectric:4.10.3'
}

方案3:全局强制重定向HTTP仓库请求

如果不想修改Robolectric相关配置,可以在根目录build.gradle的allprojects配置块中添加仓库重定向规则,将所有HTTP协议的mavenCentral请求强制转为HTTPS:

allprojects {
    repositories {
        // 原有仓库配置保持不变
        all { ArtifactRepository repo ->
            if (repo.url.toString().startsWith('http://repo1.maven.org/maven2')) {
                repo.url = uri('https://repo1.maven.org/maven2')
            }
        }
    }
}

内容的提问来源于stack exchange,提问作者Jay Whitsitt

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.11 03:24:03