在 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
在 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