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

Jetpack Compose 1.1.1集成Google Maps报错:找不到isTraceInProgress()方法

问题描述

使用Jetpack Compose 1.1.1版本集成Google Maps后,应用启动直接崩溃;移除Google Maps相关代码后,应用可正常运行。报错核心信息:

java.lang.NoSuchMethodError:找不到androidx.compose.runtime.ComposerKt类或其超类中的静态方法isTraceInProgress()Z

完整崩溃日志:

E/AndroidRuntime: FATAL EXCEPTION: main
        Process: com.emmanuel.japh, PID: 6095
        java.lang.NoSuchMethodError: No static method isTraceInProgress()Z in class Landroidx/compose/runtime/ComposerKt; or its super classes (declaration of 'androidx.compose.runtime.ComposerKt' appears in /data/app/~~CawNWHnzOeevtc9GLdJ9Wg==/com.emmanuel.japh-hZxyKg3RuIgGoJA8QHMO8A==/base.apk)
            at com.google.maps.android.compose.GoogleMapKt.GoogleMap(Unknown Source:6)
            at com.emmanuel.japh.ui.screens.HomeScreenKt.HomeScreen(HomeScreen.kt:20)
            at com.emmanuel.japh.navigation.ComposableSingletons$BottomNavGraphKt$lambda-1$1.invoke(BottomNavGraph.kt:23)
            at com.emmanuel.japh.navigation.ComposableSingletons$BottomNavGraphKt$lambda-1$1.invoke(BottomNavGraph.kt:22)
            at androidx.compose.runtime.internal.ComposableLambdaImpl.invoke(ComposableLambda.jvm.kt:116)
            at androidx.compose.runtime.internal.ComposableLambdaImpl.invoke(ComposableLambda.jvm.kt:34)
            at androidx.navigation.compose.NavHostKt$NavHost$4$2.invoke(NavHost.kt:163)
            at androidx.navigation.compose.NavHostKt$NavHost$4$2.invoke(NavHost.kt:162)
            at androidx.compose.runtime.internal.ComposableLambdaImpl.invoke(ComposableLambda.jvm.kt:107)
            at androidx.compose.runtime.internal.ComposableLambdaImpl.invoke(ComposableLambda.jvm.kt:34)
            at androidx.compose.runtime.CompositionLocalKt.CompositionLocalProvider(CompositionLocal.kt:228)
            at androidx.compose.runtime.saveable.SaveableStateHolderImpl.SaveableStateProvider(SaveableStateHolder.kt:84)
            at androidx.navigation.compose.NavBackStackEntryProviderKt.SaveableStateProvider(NavBackStackEntryProvider.kt:60)
            at androidx.navigation.compose.NavBackStackEntryProviderKt.access$SaveableStateProvider(NavBackStackEntryProvider.kt:1)
            at androidx.navigation.compose.NavBackStackEntryProviderKt$LocalOwnersProvider$1.invoke(NavBackStackEntryProvider.kt:52)
            at androidx.navigation.compose.NavBackStackEntryProviderKt$LocalOwnersProvider$1.invoke(NavBackStackEntryProvider.kt:51)
            at androidx.compose.runtime.internal.ComposableLambdaImpl.invoke(ComposableLambda.jvm.kt:107)
            at androidx.compose.runtime.internal.ComposableLambdaImpl.invoke(ComposableLambda.jvm.kt:34)
            at androidx.compose.runtime.CompositionLocalKt.CompositionLocalProvider(CompositionLocal.kt:228)
            at androidx.navigation.compose.NavBackStackEntryProviderKt.LocalOwnersProvider(NavBackStackEntryProvider.kt:47)
            at androidx.navigation.compose.NavHostKt$NavHost$4.invoke(NavHost.kt:162)
            at androidx.navigation.compose.NavHostKt$NavHost$4.invoke(NavHost.kt:141)
            at androidx.compose.runtime.internal.ComposableLambdaImpl.invoke(ComposableLambda.jvm.kt:116)
            at androidx.compose.runtime.internal.ComposableLambdaImpl.invoke(ComposableLambda.jvm.kt:34)
            at androidx.compose.animation.CrossfadeKt$Crossfade$4$1.invoke(Crossfade.kt:115)
            at androidx.compose.animation.CrossfadeKt$Crossfade$4$1.invoke(Crossfade.kt:110)
            at androidx.compose.runtime.internal.ComposableLambdaImpl.invoke(ComposableLambda.jvm.kt:107)
            at androidx.compose.runtime.internal.ComposableLambdaImpl.invoke(ComposableLambda.jvm.kt:34)
            at androidx.compose.animation.CrossfadeKt.Crossfade(Crossfade.kt:124)
            at androidx.compose.animation.CrossfadeKt.Crossfade(Crossfade.kt:55)
            at androidx.navigation.compose.NavHostKt.NavHost(NavHost.kt:141)
            at androidx.navigation.compose.NavHostKt$NavHost$5.invoke(Unknown Source:13)
            at androidx.navigation.compose.NavHostKt$NavHost$5.invoke(Unknown Source:10)
            at androidx.compose.runtime.RecomposeScopeImpl.compose(RecomposeScopeImpl.kt:140)
            at androidx.compose.runtime.ComposerImpl.recomposeToGroupEnd(Composer.kt:2158)
            at androidx.compose.runtime.ComposerImpl.skipCurrentGroup(Composer.kt:2404)
            at androidx.compose.runtime.ComposerImpl$doCompose$2$5.invoke(Composer.kt:2585)
            at androidx.compose.runtime.ComposerImpl$doCompose$2$5.invoke(Composer.kt:2571)
            at androidx.compose.runtime.SnapshotStateKt__DerivedStateKt.observeDerivedStateRecalculations(DerivedState.kt:247)
            at androidx.compose.runtime.SnapshotStateKt.observeDerivedStateRecalculations(Unknown Source:1)

HomeScreen代码:

@Composable
fun HomeScreen()
{
    val singapore = LatLng(1.35, 103.87)
    val cameraPositionState = rememberCameraPositionState {
        position = CameraPosition.fromLatLngZoom(singapore, 10f)
    }
    GoogleMap(
        modifier = Modifier.fillMaxSize(),
        cameraPositionState = cameraPositionState
    ) {
        Marker(
            state = MarkerState(position = singapore),
            title = "Singapore",
            snippet = "Marker in Singapore"
        )
    }
}
解决方案

问题根源

isTraceInProgress()是Jetpack Compose 1.2.0及以上版本才新增的方法,你当前使用的Google Maps Compose库版本依赖了该方法,但项目使用的Compose 1.1.1不包含这个方法,导致版本兼容冲突。

解决步骤

  1. 降级Google Maps Compose版本(保留Compose 1.1.1)
    如果你想继续使用Compose 1.1.1,需将Google Maps Compose降级到适配Compose 1.1.x的版本,比如2.10.0(该版本及以下适配Compose 1.1.x)。在Module级别的build.gradle.kts或build.gradle中修改依赖:

    implementation "com.google.maps.android:maps-compose:2.10.0"
    
  2. 升级Jetpack Compose版本(使用新版Maps Compose)
    若要使用更高版本的Google Maps Compose,需将Jetpack Compose整体升级到1.2.0及以上,确保所有Compose相关依赖版本一致,示例配置:

    // Compose BOM统一管理版本
    implementation platform("androidx.compose:compose-bom:2023.03.00")
    implementation "androidx.compose.ui:ui"
    implementation "androidx.compose.ui:ui-tooling-preview"
    implementation "androidx.compose.material:material"
    
  3. 同步项目并重启应用
    修改依赖后,点击Android Studio的「Sync Project with Gradle Files」按钮,等待同步完成后重新启动应用。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.24 22:48:51