Jetpack Compose 上的地图:GoogleCertificatesRslt:不允许

问题描述 投票:0回答:1

我正在尝试在我的项目中实现 Jetpack Compose Map。在模拟器中工作正常,但在物理设备上却不行。

这不是 API_KEY 问题。我使用不同的密钥尝试了几次,但不适用于我当前的项目,但适用于我的其他项目。

我正在使用这些版本(最高编译SDK33)

implementation 'com.google.maps.android:maps-compose:2.15.0'
implementation 'com.google.android.gms:play-services-maps:18.2.0'
implementation 'com.google.android.gms:play-services-location:21.0.1'

版本不是问题,我创建了一个分支用compileSDK更新还是不行。

我仅使用地图创建一个基本屏幕。

    val cameraPositionState = rememberCameraPositionState {
    position = CameraPosition.fromLatLngZoom(LatLng(-17.1820972, 28.2918109), 10f)
}
GoogleMap(
    modifier = Modifier
        .fillMaxWidth()
        .height(300.dp)
        .padding(top = 40.dp),
    cameraPositionState = cameraPositionState
)

显然我有互联网许可并且

        <meta-data
        android:name="com.google.android.geo.API_KEY"
        android:value="myapi" />

这真的很奇怪,我有几个项目,但只有这些失败了。也许是为了使用 Firebase?这是我唯一的“更大的区别”。我包含了 sha1 和 sha256 用于调试和发布。

android-jetpack-compose google-maps-android-api-2
1个回答
0
投票

您说您的地图在模拟器上运行良好,但在物理设备上运行不佳。这可能是由于多种原因造成的,例如:

• 您的物理设备具有与模拟器不同版本的 Google Play 服务。您可以前往“设置”>“应用程序”>“Google Play 服务”来检查设备上的 Google Play 服务版本。您还可以按照此处的说明更新 Google Play 服务。

• 您的物理设备的配置或区域设置与模拟器不同。您可以通过转至设置 > 系统 > 语言和输入来检查设备的配置和区域设置。您还可以按照此处的说明更改设备的配置和区域设置。

• 您的物理设备具有与模拟器不同的网络或防火墙设置。您可以前往“设置”>“网络和互联网”来检查设备的网络和防火墙设置。您还可以按照此处的说明更改设备的网络和防火墙设置。

要解决此问题,您还可以通过将配置键maps.compose.debug设置为true来启用Jetpack Compose Map的调试模式。这将在 logcat 中打印有关地图和错误的更多信息。

© www.soinside.com 2019 - 2024. All rights reserved.