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

Android应用开发:引入Twilio依赖后出现DexException问题求助

解决Twilio依赖引发的DexException: Multiple dex files定义重复类问题

嘿,我之前在集成Twilio的Android SDK时也碰到过一模一样的冲突问题,这本质是因为Twilio SDK自带的Apache HttpClient相关类,和你项目里其他依赖库引入的同模块类重复了,给你几个实用的解决办法:

  • 排除Twilio依赖中的重复模块
    直接在你的build.gradle(Module级别)里,给Twilio的依赖添加排除规则,去掉它自带的Apache HttpClient相关组件:

    implementation ('com.twilio:twilio-android:{你的SDK版本号}') {
        exclude group: 'org.apache.httpcomponents', module: 'httpclient'
        exclude group: 'org.apache.httpcomponents', module: 'httpcore'
    }
    

    这样就能避免Twilio和其他库的类重复定义问题。

  • 启用MultiDex分包(针对低版本SDK)
    如果你的应用minSdkVersion低于21,Android系统默认不支持多Dex文件,这时候启用MultiDex能让系统处理多个Dex文件:

    1. 在Module的build.gradle中开启MultiDex:
      android {
          defaultConfig {
              ...
              minSdkVersion 19 // 你的最低SDK版本
              multiDexEnabled true
          }
      }
      
      dependencies {
          implementation 'com.android.support:multidex:1.0.3' // 或者对应AndroidX版本的multidex
      }
      
    2. 自定义Application类继承MultiDexApplication,或者在现有Application的attachBaseContext方法中添加:
      @Override
      protected void attachBaseContext(Context base) {
          super.attachBaseContext(base);
          MultiDex.install(this);
      }
      
  • 排查项目中所有重复依赖
    用Gradle的依赖分析命令,找出到底是哪个库和Twilio重复引入了Apache HttpClient:

    ./gradlew app:dependencyInsight --dependency org.apache.httpcomponents --configuration debugCompileClasspath
    

    执行后会列出所有引入该组件的依赖,你可以选择排除其他库中的重复模块,或者替换掉冲突的旧库。

另外提一句,现在Android官方已经废弃了Apache HttpClient,建议尽量使用OkHttp这类现代网络库,如果你的Twilio SDK版本比较旧,可以考虑升级到最新版,新版本的Twilio SDK已经切换到OkHttp,从根源上避免这类冲突。

内容的提问来源于stack exchange,提问作者Shahzad Akhtar

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 08:57:23