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

升级Android Studio Flamingo+JDK17+AGP8后R8混淆报错求助

解决Android Studio Flamingo + AGP 8下R8报错:Library class android.net.http.AndroidHttpClient implements program class org.apache.http.client.HttpClient

问题背景

升级到Android Studio Flamingo(搭配JDK17、AGP8)后,release构建时触发R8报错:

ERROR: R8: Library class android.net.http.AndroidHttpClient implements program class org.apache.http.client.HttpClient

执行./gradlew buildEnvironment未找到org.apache.http.client.HttpClient的直接引用。

解决建议

1. 排除间接引入的Apache HttpClient依赖

部分第三方库可能间接引入了Apache HttpClient,在app模块的build.gradle中添加依赖排除规则:

android {
    // 保留原有配置
    configurations {
        all {
            exclude group: 'org.apache.httpcomponents', module: 'httpclient'
            exclude group: 'org.apache.httpcomponents', module: 'httpcore'
        }
    }
}

2. 添加R8规则忽略冲突

如果排除依赖会影响功能,在proguard-rules.pro中添加规则告诉R8忽略该冲突:

-dontwarn org.apache.http.**
-keep class org.apache.http.client.HttpClient { *; }
-keep class android.net.http.AndroidHttpClient { *; }

也可在build.gradle的release构建配置中添加打包规则:

android {
    buildTypes {
        release {
            // 保留原有配置
            packagingOptions {
                pickFirst 'org/apache/http/client/HttpClient.class'
            }
        }
    }
}

3. 迁移到AndroidX推荐的网络库

Android已弃用Apache HttpClient,建议替换为OkHttp或HttpURLConnection,从根源解决依赖冲突。示例替换:

// 原Apache HttpClient代码
HttpClient client = new DefaultHttpClient();
HttpGet request = new HttpGet(url);
HttpResponse response = client.execute(request);

// 替换为OkHttp实现
OkHttpClient client = new OkHttpClient();
Request request = new Request.Builder().url(url).build();
Response response = client.newCall(request).execute();

4. 调整AGP8的兼容性配置

AGP8对R8规则更严格,优化build.gradle配置:

android {
    compileSdk 33
    // AGP8+无需手动指定buildToolsVersion,会自动匹配
    defaultConfig {
        minSdkVersion 21 // 根据项目需求调整,建议不低于21
    }
    buildTypes {
        release {
            minifyEnabled true
            shrinkResources true // 可选,配合代码混淆使用
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
        }
    }
}

内容的提问来源于stack exchange,提问作者Matheus Mesquita

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 14:02:56