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

Navigation Compose报java.lang.NoSuchMethodError问题求助

解决Navigation Compose中的NoSuchMethodError异常

问题原因

这个java.lang.NoSuchMethodError异常是由于Navigation Compose依赖版本不匹配导致的:

  • NavGraphBuilder.composable()方法的签名在不同版本的Navigation Compose中发生了变化
  • 当项目中多个模块(比如主app模块和home模块)引入了不同版本的Navigation Compose库时,会出现方法签名不匹配的情况,运行时找不到对应版本的方法。

解决方案

1. 统一所有模块的Navigation Compose版本

在项目根目录的build.gradle(或settings.gradle的dependencyResolutionManagement块)中定义统一的版本变量,确保所有模块使用相同版本的Navigation Compose:

// 根目录build.gradle
buildscript {
    ext {
        nav_compose_version = "2.7.7" // 使用最新稳定版,可根据Jetpack版本调整
    }
}

然后在所有依赖Navigation Compose的模块(比如app、home模块)的build.gradle中引用该变量:

implementation "androidx.navigation:navigation-compose:$nav_compose_version"

2. 清理并重建项目

执行以下命令清理缓存并重建项目:

# macOS/Linux
./gradlew clean assembleDebug

# Windows
gradlew clean assembleDebug

或者在Android Studio中点击Build -> Rebuild Project。

3. 排查依赖冲突

使用Android Studio的依赖分析工具检查是否存在版本冲突:

  1. 打开File -> Project Structure
  2. 切换到Dependencies标签页,选择对应的模块
  3. 点击右上角的Analyzer按钮,查看是否有多个版本的navigation-compose被引入,如有则强制统一为目标版本。

额外注意事项

如果使用Hilt依赖注入,确保Hilt版本与Jetpack组件(包括Navigation Compose)版本兼容,避免因版本不兼容引发的间接依赖冲突。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.21 08:34:51