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

Dagger Hilt单例类出现NoClassDefFoundError问题求助

排查NoClassDefFoundError(找不到IAccessEnablerDelegate类)的方案

1. 依赖引入问题

  • 确认Adobe Pass SDK的依赖是否正确添加到项目中:
    • 若是maven依赖,检查Module级别的build.gradle里是否有完整声明,例如:
      implementation 'com.adobe.adobepass:accessenabler:x.y.z' // 替换成实际版本号
      
    • 若是本地aar/jar包,确认文件已放在libs目录,且build.gradle中配置了implementation fileTree(dir: 'libs', include: ['*.jar', '*.aar'])或单独引入对应文件。
    • 执行./gradlew clean build --refresh-dependencies刷新依赖缓存,确保依赖同步到位。

2. 混淆/打包问题

  • 若开启了混淆,检查proguard规则是否遗漏Adobe Pass SDK的类,需添加保留规则:
    -keep class com.adobe.adobepass.accessenabler.api.** { *; }
    -keep interface com.adobe.adobepass.accessenabler.api.** { *; }
    
  • 确认R8优化没有误删相关类,检查R8配置中未标记Adobe的类为可移除。

3. 多模块依赖与类加载问题

  • 若项目是多模块结构,确认包含IAccessEnablerDelegate的依赖已传递到ViewModel所在模块——要么ViewModel模块直接引入SDK依赖,要么依赖包含SDK的模块。
  • 排查是否存在类加载器冲突:比如不同模块引入了不同版本的Adobe SDK,统一所有模块的SDK版本即可。

4. Hilt配置与注入问题

  • 确认Hilt配置完整:Application类是否加了@HiltAndroidApp注解,AndroidManifest里是否注册了该Application。
  • 检查AccessEnablerDelegate的继承关系:确认它确实正确继承了IAccessEnablerDelegate,包名、类名没有拼写错误。
  • 尝试直接注入AdobePassAuthentication而非Provider<AdobePassAuthentication>,排除Provider注入时的类加载异常。

5. 构建变体与缓存问题

  • 检查当前运行的构建变体(debug/release)是否正确引入了SDK依赖,避免部分变体未配置依赖的情况。
  • 执行./gradlew clean清理构建缓存,再重新构建运行,排除旧缓存产物导致的类缺失。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.14 15:17:11