升级AGP与Gradle后出现google-http-client的TrustAllX509TrustManager问题
解决方案
优先方案:升级依赖版本
旧版本的Google API客户端库包含了不安全的TrustAllX509TrustManager实现,新版本已经修复了这个问题。直接更新你的依赖到最新稳定版:
api("com.google.api-client:google-api-client-android:2.4.0") { exclude group: 'org.apache.httpcomponents' } api("com.google.apis:google-api-services-calendar:v3-rev20240409-2.0.0") { exclude group: 'org.apache.httpcomponents' }
更新后重新同步Gradle,Lint错误应该会自动消失。
临时方案:忽略Lint检查(不推荐)
如果暂时无法升级依赖,可以在模块的build.gradle中添加Lint配置,禁用该规则检查:
android { lintOptions { disable 'TrustAllX509TrustManager' } }
⚠️ 注意:这个方案只是隐藏错误,并没有解决证书信任的安全问题,正式环境不建议使用。
进阶方案:自定义安全的TrustManager
如果必须保留旧依赖版本,可通过自定义SSLContext替换默认的不安全实现:
// 创建安全的TrustManager数组 TrustManager[] trustManagers = new TrustManager[]{ new X509TrustManager() { @Override public void checkClientTrusted(X509Certificate[] chain, String authType) throws CertificateException { // 按需实现客户端证书验证逻辑 } @Override public void checkServerTrusted(X509Certificate[] chain, String authType) throws CertificateException { // 使用系统默认证书验证逻辑,避免信任任意证书 TrustManagerFactory tmf = TrustManagerFactory.getInstance(TrustManagerFactory.getDefaultAlgorithm()); tmf.init((KeyStore) null); for (TrustManager tm : tmf.getTrustManagers()) { if (tm instanceof X509TrustManager) { ((X509TrustManager) tm).checkServerTrusted(chain, authType); return; } } throw new CertificateException("No valid X509TrustManager found"); } @Override public X509Certificate[] getAcceptedIssuers() { return new X509Certificate[0]; } } }; // 初始化SSLContext SSLContext sslContext = SSLContext.getInstance("TLS"); sslContext.init(null, trustManagers, new SecureRandom()); // 配置Google API客户端使用自定义SSLContext HttpTransport httpTransport = new NetHttpTransport.Builder() .setSslSocketFactory(sslContext.getSocketFactory()) .build(); com.google.api.services.calendar.Calendar service = new com.google.api.services.calendar.Calendar.Builder(httpTransport, JacksonFactory.getDefaultInstance(), credential) .setApplicationName("Your App Name") .build();
这个方案彻底替换了不安全的证书信任逻辑,保证网络请求的安全性。
内容的提问来源于stack exchange,提问作者Haniyeh Khaksar
相关产品推荐
相关产品推荐

