首页 > 解决方案 > 使用 react-native-maps 组件打开屏幕时 Expo 独立应用程序崩溃

问题描述

我正在开发一个使用 react-native-maps 的 Expo 应用程序。当我在 Expo Client 中打开该应用程序时,它工作得非常好。但是每次我打开包含 react-native-maps 的屏幕时,独立应用程序的 android“APK”版本都会重新加载。

我为 react-native-maps 做了以下设置:

  1. 在我的 Google Cloud 中启用“Maps SDK for Android”。
  2. 创建了一个新的 API 凭据并将其限制为 android 应用程序,并包括我的应用程序指纹,就像https://docs.expo.io/versions/latest/sdk/map-view中的步骤一样。
  3. 复制 API 密钥并将其添加到app.json文件中。
"android": {
      "icon": "./assets/images/app-icon.png",
      "useNextNotificationsApi": true,
      "adaptiveIcon": {
        "foregroundImage": "./assets/images/app-adaptive-icon.png",
        "backgroundColor": "#FFFFFF"
      },
      "googleServicesFile": "./google-services.json",
      "package": "PACKAGE_NAME",
      "config": {
        "googleMaps": {
          "apiKey": "API_KEY"
        }
      },
      "versionCode": 1
},

我还尝试将应用程序限制更改为NoneGoogle API 凭据设置,以防万一我的设置不正确并且我无法获得正确的正确应用程序指纹。但这也没有用。

另一个可能与问题有关的提示,我也在使用 Expo Notifications Services。如果我使用 Expo Client 运行应用程序,我可以毫无问题地向应用程序发送通知。但如果我构建一个独立的 APK,并使用 expo 通知工具发送通知,我会收到此错误:

InvalidCredentials:无法通过 FCM 服务器进行身份验证。确保您上传的 FCM 服务器密钥正确。

虽然我google-services.json在我的应用程序根目录中添加了文件。并做了这个命令:

expo push:android:upload --api-key <your-token-here>

我正在使用Expo: ~39.0.2托管工作流。

标签: androidreact-nativegoogle-cloud-platformexporeact-native-component

解决方案


推荐阅读