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

Android Compose+Hilt环境下配置Instrumented测试时遇ComponentActivity ClassNotFoundException问题

解决Instrumented测试中找不到androidx.activity.ComponentActivity的崩溃问题

我来帮你搞定这个崩溃问题,核心原因是你只在主代码模块声明了androidx.activity:activity-compose依赖,但Instrumented测试(androidTest目录)的代码无法直接复用主模块的implementation依赖,导致测试进程启动时找不到对应的类。下面是具体的解决步骤:

1. 为测试模块添加专属依赖

打开app模块的build.gradle(或build.gradle.kts),在dependencies块中添加androidTestImplementation版本的activity依赖:

// Groovy版本
androidTestImplementation 'androidx.activity:activity-compose:1.3.1'

或者KTS版本:

// Kotlin DSL版本
androidTestImplementation("androidx.activity:activity-compose:1.3.1")

建议你用版本变量统一管理依赖版本,比如在项目根目录的build.gradle中定义ext.activityComposeVersion = "1.3.1",然后在依赖中引用,方便后续升级。

2. 清理并重建项目

依赖添加完成后,执行以下操作确保依赖被正确同步:

  • 执行命令行:./gradlew clean assembleAndroidTest
  • 或者在Android Studio中点击菜单栏的Build -> Clean Project,之后再点击Build -> Rebuild Project

3. 检查测试类的Activity配置

确认你的测试类中使用的Compose测试规则是正确绑定到ComponentActivity的,比如:

@get:Rule
val composeTestRule = createAndroidComposeRule<ComponentActivity>()

如果这里指定的Activity类仍然报错,说明依赖同步还没完成,再重复第二步的清理重建操作。

完成以上步骤后,测试进程应该就能找到ComponentActivity类,正常启动并执行你的Instrumented测试了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.28 11:53:13