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

Gradle构建已存在,运行Android测试却报「目录无Gradle构建」错误求助

解决Android测试时Gradle提示「目录不包含Gradle构建」的问题

你遇到的问题是:项目main目录代码和普通test目录的Gradle构建完全正常,但运行Android Instrumented测试时,出现错误提示:

目录C:\Users\alici\MyProject\Myproject不包含Gradle构建

你的Compose测试代码如下:

@RunWith(AndroidJUnit4::class)
class NavigationTest {

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


    fun startApp_showRegistrationScreen() {
        composeTestRule.setContent {
            MyTheme {
                MyApp()
            }
        }
        val registerString = composeTestRule.activity.getString(R.string.register_for_first_time)
        composeTestRule.onNodeWithText(registerString).assertIsDisplayed()
    }
}

以下是几种可行的解决方法:

  • 确认测试类的目录位置
    Android Instrumented测试必须放在src/androidTest/java/[你的包名]目录下,如果你的NavigationTest放在了普通test目录或者其他错误路径,Gradle会无法识别为Android测试任务,导致执行时路径判断错误。

  • 检查Android测试的Gradle配置
    确保app模块的构建脚本(build.gradle或build.gradle.kts)中正确配置了Compose测试相关依赖和插件:

    android {
        defaultConfig {
            testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
        }
    
        buildFeatures {
            compose true
        }
    
        composeOptions {
            kotlinCompilerExtensionVersion = "与你的Compose版本匹配"
        }
    }
    
    dependencies {
        // Compose测试核心依赖
        androidTestImplementation "androidx.compose.ui:ui-test-junit4:对应版本"
        // 用于Manifest声明测试权限
        debugImplementation "androidx.compose.ui:ui-test-manifest:对应版本"
    }
    

    配置完成后执行Gradle同步,再尝试运行测试。

  • 修正IDE运行配置的工作目录
    如果你用Android Studio运行测试,检查运行配置的工作目录是否正确:

    1. 打开Run/Debug Configurations窗口
    2. 找到对应的Android测试配置
    3. 确保Working directory字段设置为$ProjectFileDir$(指向项目根目录,包含settings.gradle的位置)
  • 清理并重新构建项目
    执行以下Gradle命令清理缓存并重新构建测试包:

    # Windows系统
    gradlew clean assembleDebugAndroidTest
    
    # Mac/Linux系统
    ./gradlew clean assembleDebugAndroidTest
    

    完成后再运行测试,避免缓存导致的路径问题。

  • 验证项目根目录的配置文件
    确认项目根目录下存在settings.gradle(或settings.gradle.kts),并且正确包含了你的app模块:

    include ':app'
    

    如果是多模块项目,检查所有模块的路径声明是否正确,没有拼写错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.29 05:17:25