Uma*_*hur 6 android huawei-mobile-services huawei-developers huawei-map-kit
我尝试按照官方Codelab中的说明进行操作, 这是相应源代码的链接: https: //github.com/huaweicodelabs/MapKit
我做了什么:
signingConfigs{release{...}}为:storeFile file("/Users/myuser/mydir/mykeystorexyz") // no .jks extension as it's unimportant
storePassword "mypass123"
keyAlias "mykeystorexyz" //I had kept the name and alias of the file to be same
keyPassword "mypass123"
v2SigningEnabled true
Run Code Online (Sandbox Code Playgroud)
agconnect-services.json下appagconnect-services.json并将其作为参数传递给MapsInitializer.setApiKey()inside MainActivity.java。keytool -list -v -keystore /Users/myuser/mydir/mykeystorexyz命令获取密钥库信息并复制SHA256指纹。将此指纹粘贴到“AppGallery Connect”门户的应用程序信息部分。6.6.0.331APKMirror 中的版本)。地图没有显示,我可以在 Logcat 上看到大量错误。因此,我决定增加库版本并开始使用com.huawei.hms:maps:6.5.1.300和com.huawei.agconnect:agcp:1.6.0.300。这大大减少了运行时错误的数量,但地图仍然无法显示,我会在 Logcat 中看到以下错误消息:E/HmsMapKit_MapView_15: MapsInitializer is not initialized.
E/HmsMapKit_MapView_8: MapsInitializer is not initialized.
Run Code Online (Sandbox Code Playgroud)
我不确定这种情况出了什么问题。为什么没有MapsInitializer被初始化?
我使用的核心HMS SDK和MapKit SDK版本是否不匹配?
我尝试在华为云设备上运行APK,但得到了相同的结果。
有人能指出这个错误的任何可能原因吗?我没想到会遇到任何问题,因为我对官方代码实验室的源代码做了很少的更改。
编辑:我浏览了文档并意识到MapsInitializer.initialize(this);需要在调用新版本的 HMS Map Kit 之前添加MapsInitializer.setApiKey()。这消除了MapsInitializer is not initialized错误,但地图仍然没有显示。
现在,每当我运行该应用程序时,我都会看到将 HMS Core 更新到最新版本的提示。更新总是失败并显示以下消息:Unable to update at the moment. Please try again later (Error 102)
我认为这可能是我运行 Android 12 的 Google Pixel 5A 手机的问题,因此尝试将应用程序的 APK 上传到具有华为支持的 Android 设备的移动云调试控制台。我做了两次不同的尝试。首先,我尝试使用Appgallery Connect的UI界面上传APK并在那里运行APK - 但是会出现相同的错误消息(我能够验证这些设备上是否预装了HMS Core的版本)。我还尝试使用 Android Studio 的 HMS Core 插件进行云调试 - 但该服务似乎已关闭。
小智 0
我在华为MapKit上遇到了同样的问题,并通过使用AGConnectOptionsBuilder添加apiKey解决了它。您需要在initialize()调用函数之前添加它和MapsInitializer.setApiKey(),如下所示
val apiKey = AGConnectOptionsBuilder().build(this).getString("client/api_key")
MapsInitializer.setApiKey(apiKey)
MapsInitializer.initialize(applicationContext)
mMapView.onCreate(mapViewBundle)
mMapView.getMapAsync(this)
Run Code Online (Sandbox Code Playgroud)
这是我添加到官方源代码中的唯一一个,现在它对我有用
| 归档时间: |
|
| 查看次数: |
485 次 |
| 最近记录: |