华为 HMS 地图 Android Codelab 不工作

Huawei HMS Maps Android Codelab not working

我正在尝试将 Huawei Maps Kit 用于不包含 Google Play 服务的新设备。 Codelab 演示位于:

https://developer.huawei.com/consumer/en/codelab/HMSMapKit/index.html#7

我没有更改任何一行代码,应用程序已自动下载华为移动服务版本 3.0.3.300。

但是,地图仍然没有出现。

你遇到过同样的问题吗?

我收到此日志:

01-26 14:24:34.265 19265-19265/com.wz.android.mapdemo W/DynamicModule: Failed to load remote module.

01-26 14:24:34.256 19265-19265/com.wz.android.mapdemo D/HmsMapKit_MapView_183: onStart
01-26 14:24:34.257 19265-19265/com.wz.android.mapdemo I/HmsMapKit_MapCreator_48: Making Createor dynamically
01-26 14:24:34.257 19265-19265/com.wz.android.mapdemo I/DynamicModule: Local module huawei_module_maps:0
01-26 14:24:34.257 19265-19265/com.wz.android.mapdemo I/DynamicModule: Remote module huawei_module_maps:-100
01-26 14:24:34.259 19265-19265/com.wz.android.mapdemo W/DynamicModule: Failed to load remote module.
    com.huawei.hms.feature.dynamic.DynamicModule$LoadingException: f*i*e* *o*l*a* *o*u*e
        at com.huawei.hms.feature.dynamic.DynamicModule.a(Unknown Source)
        at com.huawei.hms.feature.dynamic.DynamicModule.a(Unknown Source)
        at com.huawei.hms.feature.dynamic.DynamicModule.load(Unknown Source)
        at com.huawei.hms.maps.internal.MapCreator.getRemoteContext(MapCreator.java:97)
        at com.huawei.hms.maps.internal.MapCreator.getRemoteMapContext(MapCreator.java:85)
        at com.huawei.hms.maps.internal.MapCreator.getCreator(MapCreator.java:50)
        at com.huawei.hms.maps.MapView$MapViewDeferredLifecycleHelper.createDelegate(MapView.java:241)
        at com.huawei.hms.feature.dynamic.DeferredLifecycleHelper.a(Unknown Source)
        at com.huawei.hms.feature.dynamic.DeferredLifecycleHelper.onStart(Unknown Source)
        at com.huawei.hms.maps.MapView.onStart(MapView.java:184)
        at com.wz.android.mapdemo.MainActivity.onStart(MainActivity.java:82)
        at android.app.Instrumentation.callActivityOnStart(Instrumentation.java:1245)
        at android.app.Activity.performStart(Activity.java:6330)
        at android.app.Activity.performRestart(Activity.java:6376)
        at android.app.Activity.performResume(Activity.java:6381)
        at android.app.ActivityThread.performResumeActivity(ActivityThread.java:3310)
        at android.app.ActivityThread.handleResumeActivity(ActivityThread.java:3356)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1543)
        at android.os.Handler.dispatchMessage(Handler.java:111)
        at android.os.Looper.loop(Looper.java:207)
        at android.app.ActivityThread.main(ActivityThread.java:5765)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:789)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:679)
01-26 14:24:34.259 19265-19265/com.wz.android.mapdemo E/HmsMapKit_MapCreator_99: getRemoteContext: DynamicModule load failedcom.huawei.hms.feature.dynamic.DynamicModule$LoadingException: failed to load Module
01-26 14:24:34.261 19265-19265/com.wz.android.mapdemo I/HmsMapKit_MapCreator_53: getRemoteMapContext failed
01-26 14:24:34.263 19265-19265/com.wz.android.mapdemo D/HmsMapKit_MapView_166: onResume
01-26 14:24:34.263 19265-19265/com.wz.android.mapdemo I/HmsMapKit_MapCreator_48: Making Createor dynamically
01-26 14:24:34.263 19265-19265/com.wz.android.mapdemo I/DynamicModule: Local module huawei_module_maps:0
01-26 14:24:34.264 19265-19265/com.wz.android.mapdemo I/DynamicModule: Remote module huawei_module_maps:-100
01-26 14:24:34.265 19265-19265/com.wz.android.mapdemo W/DynamicModule: Failed to load remote module.
    com.huawei.hms.feature.dynamic.DynamicModule$LoadingException: f*i*e* *o*l*a* *o*u*e
        at com.huawei.hms.feature.dynamic.DynamicModule.a(Unknown Source)
        at com.huawei.hms.feature.dynamic.DynamicModule.a(Unknown Source)
        at com.huawei.hms.feature.dynamic.DynamicModule.load(Unknown Source)
        at com.huawei.hms.maps.internal.MapCreator.getRemoteContext(MapCreator.java:97)
        at com.huawei.hms.maps.internal.MapCreator.getRemoteMapContext(MapCreator.java:85)
        at com.huawei.hms.maps.internal.MapCreator.getCreator(MapCreator.java:50)
        at com.huawei.hms.maps.MapView$MapViewDeferredLifecycleHelper.createDelegate(MapView.java:241)
        at com.huawei.hms.feature.dynamic.DeferredLifecycleHelper.a(Unknown Source)
        at com.huawei.hms.feature.dynamic.DeferredLifecycleHelper.onResume(Unknown Source)
        at com.huawei.hms.maps.MapView.onResume(MapView.java:167)
        at com.wz.android.mapdemo.MainActivity.onResume(MainActivity.java:133)
        at android.app.Instrumentation.callActivityOnResume(Instrumentation.java:1268)
        at android.app.Activity.performResume(Activity.java:6389)
        at android.app.ActivityThread.performResumeActivity(ActivityThread.java:3310)
        at android.app.ActivityThread.handleResumeActivity(ActivityThread.java:3356)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1543)
        at android.os.Handler.dispatchMessage(Handler.java:111)
        at android.os.Looper.loop(Looper.java:207)
        at android.app.ActivityThread.main(ActivityThread.java:5765)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:789)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:679)
01-26 14:24:34.265 19265-19265/com.wz.android.mapdemo E/HmsMapKit_MapCreator_99: getRemoteContext: DynamicModule load failedcom.huawei.hms.feature.dynamic.DynamicModule$LoadingException: failed to load Module
01-26 14:24:34.267 19265-19265/com.wz.android.mapdemo I/HmsMapKit_MapCreator_53: getRemoteMapContext failed

我尝试了 Codelab 的 HMS Map 示例项目,它适用于所有设备(带 GMS 和不带 GMS)。 您是否修改了示例代码中的任何内容(gradle.build、json 文件等)或只是下载了示例代码并将其构建到 运行?
我的意思是,您可能按照 Codelab 中的步骤并使用示例项目作为参考并根据说明更新了一些文件?

请提供更多信息

Javier,我刚刚在华为开发者网站上查看了信息https://developer.huawei.com/consumer/en/doc/development/HMS-Guides/hms-map-v4-abouttheservice。 "Restrictions" section 3.1 里面说只针对华为设备。

请尝试以下步骤:

  1. Phone→设置→应用程序→搜索:华为服务框架,卸载*
  2. Phone→设置→应用程序→搜索:华为移动服务,卸载*
  3. Phone→应用市场→搜索:华为移动服务,安装

*如果无法卸载服务,请尝试停用它们并在出现提示时卸载它们的更新。

目前HUAWEI Map Kit只能运行在华为手机上使用。我们现在专注于解耦,以便 运行 可以在 non-Huawei 手机上使用更多功能。可在non-Huawei部手机上运行的HMS Core能力,请参考EMUI Version-Dependent Features。如果在Required Android Version (Non-Huawei Phones)栏中显示Not supported,对应的capability只能运行在华为手机上;如果此列中显示特定 Android 版本,则相应的功能可以 运行 在 non-Huawei 手机 运行 宁这些版本的 Android 系统上。

下载demo需要在AGC上创建工程,添加自己的sha256,下载JSON文件到应用级目录。地图可以正常显示了。