如何从AAR中排除依赖库?以排除androidx.core为例
你尝试的exclude配置无效,大概率是因为NatShare的AAR包并非通过传递依赖引入androidx.core,而是直接将androidx.core的代码打包进了自身的classes.jar中——Gradle的exclude仅对传递依赖生效,对这种内置的代码无法直接排除。
可以尝试以下几种方案:
方案1:通过packagingOptions全局排除
在模块的build.gradle(或build.gradle.kts)中添加打包配置,直接排除APK/AAB中androidx.core相关的文件:
android { packagingOptions { // 排除androidx.core下所有类文件 exclude 'androidx/core/**' } }
注意:这是全局配置,会移除所有依赖中androidx.core的文件,如果你的项目其他模块需要androidx.core,谨慎使用。
方案2:手动修改AAR包
如果不想全局排除,可以手动修改NatShare的AAR包:
- 将
NatShare.aar文件解压(可视为zip文件处理) - 打开解压后的
classes.jar,删除其中的androidx/core目录 - 将修改后的文件重新打包为AAR,替换项目中原有的AAR文件
方案3:使用resolutionStrategy强制排除
如果androidx.core是通过传递依赖引入(只是你的exclude写法不对),可以尝试全局强制排除:
configurations.all { resolutionStrategy { exclude group: 'androidx.core', module: 'core' } }
内容的提问来源于stack exchange,提问作者Сергій Курило
相关产品推荐
相关产品推荐

