Skip to content

在 macOS 上集成 Sumsub SDK 时 AndroidAOP 触发文件系统大小写冲突 #92

@beibeiandroid

Description

@beibeiandroid

在 macOS 上集成 Sumsub SDK 时 AndroidAOP 触发文件系统大小写冲突

问题描述: 集成 Sumsub SDK 的项目在 macOS 上使用 AndroidAOP 时,会出现如下报错: com.android.tools.r8.internal.Ke: Class content provided for type descriptor com.sumsub.sns.internal.core.common.K actually defines class com.sumsub.sns.internal.core.common.k

根本原因: Sumsub SDK 内部存在混淆后仅大小写不同的类名(如 K.class 和 k.class)。在 macOS 默认的大小写不敏感文件系统上,AndroidAop 插件在执行 AssembleAndroidAopTask 任务提取 JAR 包时,会导致同名文件覆盖,使得类内容与描述符不匹配,最终导致 D8/R8 报错。

当前状态: 虽然设置了 androidAopConfig { exclude 'com.sumsub.sns' },但该配置目前似乎仅排除了“织入(Weaving)”处理,而无法阻止插件任务在提取依赖 JAR 时触发的文件覆盖冲突。

建议改进: 建议优化 androidAopConfig 的 exclude 逻辑: **如果某个包名被显式排除,插件在提取 JAR 依赖进行字节码处理前,应直接跳过该包下所有条目的解压/写入过程。**这样可以从根本上解决在 macOS 上处理这类包含大小写冲突类名的第三方 SDK 时的构建失败问题,而无需用户手动更换文件系统分区。

编译出错

错误日志

Caused by: [CIRCULAR REFERENCE: com.android.tools.r8.internal.Ke: Class content provided for type descriptor com.sumsub.sns.internal.features.domain.B actually defines class com.sumsub.sns.internal.features.domain.b]

库的版本号:

2.7.4

电脑类别:

MAC

Android Studio 版本:

panda 2 2025.3.2

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions