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

无法实例化appComponentFactory:ClassNotFoundException问题根源咨询

无法实例化appComponentFactory错误排查

问题背景

  • 未修改Gradle或Manifest文件,仅基于重构后的API调整了Gson响应模型及映射,使用Retrofit进行API调用
  • 刚按Google文档要求添加了Hilt依赖
  • 构建项目测试功能时,触发Unable to instantiate appComponentFactory错误

错误日志

Unable to instantiate appComponentFactory
java.lang.ClassNotFoundException: Didn't find class "androidx.core.app.CoreComponentFactory" on path: DexPathList[[],nativeLibraryDirectories=[/data/app/com.<ProjectName>.app-uNyluFOJTyG6uVYYO-7V6w==/lib/arm64, /data/app/com.<ProjectName>.app-uNyluFOJTyG6uVYYO-7V6w==/base.apk!/lib/arm64-v8a, /system/lib64]]
                                        at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:134)
                                        at java.lang.ClassLoader.loadClass(ClassLoader.java:379)
                                        at java.lang.ClassLoader.loadClass(ClassLoader.java:312)
                                        at android.app.LoadedApk.createAppFactory(LoadedApk.java:226)
                                        at android.app.LoadedApk.updateApplicationInfo(LoadedApk.java:338)
                                        at android.app.ActivityThread.handleDispatchPackageBroadcast(ActivityThread.java:5388)
                                        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1733)
                                        at android.os.Handler.dispatchMessage(Handler.java:106)
                                        at android.os.Looper.loop(Looper.java:193)
                                        at com.android.server.SystemServer.run(SystemServer.java:454)
                                        at com.android.server.SystemServer.main(SystemServer.java:294)
                                        at java.lang.reflect.Method.invoke(Native Method)
                                        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
                                        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:838)

错误根源分析

1. Hilt依赖配置不完整或版本冲突

Hilt的正常运行需要配套的Gradle插件、依赖库和注解处理器,且版本需与AndroidX生态兼容。CoreComponentFactory属于AndroidX Core库,Hilt初始化过程会依赖该类,若依赖缺失、版本不匹配,就会触发类找不到的异常。

2. Dex分包配置问题

如果项目方法数较多且开启了多Dex,若主Dex未包含AndroidX Core相关类,会导致运行时无法加载CoreComponentFactory。

3. Gradle缓存残留

添加Hilt后,旧的Gradle缓存可能未更新,导致实际打包时未引入必要的依赖类。

4. Manifest隐式变更

Hilt会通过注解处理器自动修改Manifest中application标签的appComponentFactory属性,若注解处理器未正常执行,会导致Manifest引用了不存在的CoreComponentFactory类。

排查建议

  • 检查根目录及模块的build.gradle,确认Hilt配置完整:
    • 根build.gradle需添加Hilt插件依赖:id 'com.google.dagger.hilt.android' version 'x.x.x' apply false
    • 模块build.gradle需启用kotlin-kapt(或Java注解处理器)、Hilt插件,同时添加Hilt依赖和注解处理器:
      id 'kotlin-kapt'
      id 'dagger.hilt.android.plugin'
      
      dependencies {
          implementation 'com.google.dagger:hilt-android:x.x.x'
          kapt 'com.google.dagger:hilt-compiler:x.x.x'
      }
      
  • 确认AndroidX Core依赖已添加:implementation 'androidx.core:core-ktx:x.x.x'(版本需与项目中其他AndroidX库兼容)
  • 清理Gradle缓存并重新构建:执行./gradlew clean、./gradlew build --refresh-dependencies
  • 检查Manifest的application标签,若存在android:appComponentFactory="androidx.core.app.CoreComponentFactory",确认AndroidX Core依赖正常;若Hilt配置正确,该属性应被自动替换为dagger.hilt.android.internal.managers.HiltComponentFactory
  • 若开启多Dex,检查主Dex配置是否包含AndroidX Core相关类,或确保默认多Dex配置生效

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.12 07:35:37