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

Android项目引入TheoPlayer与Pushly SDK出现重复类错误的解决咨询

Android SDK重复类冲突解决指南

问题背景

项目中引入两个外部SDK:

// TheoPlayer Android SDK
implementation ':theoplayerApi21@aar'

// Pushly notification SDK
implementation 'com.pushly.android:pushsdk:1.1.9'

运行时出现重复类错误:

Duplicate class a.a found in modules jetified-pushsdk-1.1.9-runtime (com.pushly.android:pushsdk:1.1.9) and jetified-theoplayerApi21-runtime (:theoplayerApi21:)
Duplicate class b.a found in modules jetified-pushsdk-1.1.9-runtime (com.pushly.android:pushsdk:1.1.9) and jetified-theoplayerApi21-runtime (:theoplayerApi21:)
Duplicate class c.a found in modules jetified-pushsdk-1.1.9-runtime (com.pushly.android:pushsdk:1.1.9) and jetified-theoplayerApi21-runtime (:theoplayerApi21:)

推测原因是两个SDK混淆后使用了相同的单字母类名(a.a、b.a等),且无法排除任一SDK,现针对你提出的方向及其他可行方案给出具体实施步骤:


方案一:规范SDK混淆规则(仅适用于可修改SDK源码/配置的场景)

如果能拿到其中一个SDK的混淆配置文件(ProGuard/R8规则),修改规则避免极简类名冲突:

  • 添加重打包规则,指定混淆后的专属包前缀:
    -repackageclasses 'com.theoplayer.obfuscated'
    # 或者针对Pushly SDK:-repackageclasses 'com.pushly.obfuscated'
    
  • 或者禁用单字母类名生成:
    -dontusemixedcaseclassnames
    

如果是第三方闭源SDK,你无法修改其内部混淆规则,直接联系SDK官方反馈问题,要求他们调整混淆命名策略(正规SDK通常会用专属包名来避免这类冲突)。


方案二:绕开SDK自带混淆(项目未用ProGuard的情况)

SDK本身的混淆是发布前完成的,无法直接取消,但可以通过重打包工具修改SDK类名来解决冲突,以JarJar工具为例:

  1. 把冲突的SDK(比如pushsdk-1.1.9.aar)解压,提取出内部的classes.jar文件
  2. 创建规则文件rules.txt,将所有冲突的单字母类重命名到专属包下:
    rule a.** com.pushly.obf.a.@1
    rule b.** com.pushly.obf.b.@1
    rule c.** com.pushly.obf.c.@1
    
  3. 执行JarJar命令重打包:
    java -jar jarjar.jar process rules.txt original-classes.jar renamed-classes.jar
    
  4. 将重命名后的renamed-classes.jar替换回原aar的对应位置,重新打包成aar,然后修改项目依赖为这个本地修改后的aar文件。

方案三:尝试禁用单个SDK的Jetifier

错误日志里的jetified-前缀说明项目启用了Jetifier(AndroidX兼容工具),可能是Jetifier处理后导致类名冲突,可以尝试禁用其中一个SDK的Jetifier:
在项目根目录的gradle.properties中添加:

# 禁用Pushly SDK的Jetifier
android.jetifier.blacklist=pushsdk-1.1.9-runtime
# 或者禁用TheoPlayer的Jetifier:android.jetifier.blacklist=theoplayerApi21-runtime

注意:禁用后要测试SDK功能是否正常,避免出现AndroidX兼容问题。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 11:52:18