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

Android Studio如何从AAR排除Jar包?Gradle报错处理

解决本地AAR依赖排除Gson报错及类重复问题

你遇到的问题是因为files()方法返回的是FileCollection类型,不支持直接通过闭包调用exclude方法,所以Gradle会报错找不到该方法。下面给你几个可行的解决方案:

方案一:改用flatDir配置+模块式依赖写法

  1. 先在项目根目录的build.gradle(或者app模块的build.gradle)的repositories块里添加flatDir配置,让Gradle能识别libs目录下的AAR:
repositories {
    // 保留原有仓库配置(比如google()、mavenCentral())
    flatDir {
        dirs 'libs'
    }
}
  1. 然后修改app模块里的依赖语句,换成这种写法就能正常排除Gson了:
implementation(name: 'Latpay_SDK_EMV_1.3.0', ext: 'aar') {
    exclude group: 'com.google.gson', module: 'gson'
}

方案二:将AAR导入为本地模块

这种方式更直观,也能正常使用exclude:

  1. 点击Android Studio顶部菜单栏的File -> New -> Module,选择Import .JAR/.AAR Package,选中libs目录下的Latpay_SDK_EMV_1.3.0.aar完成导入。
  2. 在app模块的build.gradle里添加对该模块的依赖,并排除Gson:
implementation project(':Latpay_SDK_EMV_1.3.0') {
    exclude group: 'com.google.gson', module: 'gson'
}

方案三:强制统一Gson版本(解决类重复兜底方案)

如果上面的排除方法没生效,或者想彻底避免Gson版本冲突,可以在根目录的build.gradle里配置强制依赖:

allprojects {
    configurations.all {
        resolutionStrategy {
            // 替换成你项目中正在使用的Gson版本号
            force 'com.google.gson:gson:2.8.9'
        }
    }
}

这样Gradle会强制使用你指定的Gson版本,忽略AAR包中自带的版本,从根源解决类重复问题。

额外注意事项

  • 执行完配置后,点击Gradle工具栏的Sync Now同步项目,或者执行./gradlew clean build清理构建缓存。
  • 可以通过./gradlew app:dependencies命令查看依赖树,确认Gson是否被正确排除或统一版本。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 18:50:26