【问题标题】:Huawei Map not loading tiles华为地图不加载瓷砖
【发布时间】:2021-09-06 10:04:28
【问题描述】:

我遵循了文档 herehere(非常简单),但地图视图不加载任何图块。

我使用HMS Toolkit,配置向导成功。我还设置了我的 api 密钥,在我的应用程序类和我的活动类 onCreate 中都使用了这一行。

MapsInitializer.setApiKey(HUAWEI_API_KEY);

这里是设备信息和SDK版本:

  • 手机型号:华为 Y7 Prime 2018
  • EMUI 版本:8.0.0
  • HMS核心版本:6.1.0.305
  • 地图SDK版本:com.huawei.hms:maps:6.0.0.301

这是屏幕:

相关错误日志:

E/HmsMapKit_MapView_151: createDelegate: creator == null

E/HmsMapKit_GrsClient_24:GRS 返回空。

E/HmsMapKit_ErrorTraceLogPusher_4:缓存错误跟踪日志: ErrorTraceLogDTO{ 场景 = GET_GRS_URL_FAILED', message='GRS 返回 为空,服务名称为 com.huawei.hms.map。'}

E/HmsMapKit_ErrorTraceLogPusher_12:eventId 为 null 或为空。

E/HmsMapKit_AuthenticateClient_27:出现异常 com.huawei.hms.maps.foundation.client.c

E/HmsMapKit_ErrorTraceLogPusher_4:缓存错误跟踪日志: ErrorTraceLogDTO{ 场景 = ACCESS_SERVICE_ERROR', message='060001 : NETWORK_ERROR'}

E/HmsMapKit_AuthenticateCache_0:身份验证错误,抛出 重试异常。

E/HmsMapKit_CopyrightDelegate_27:获取版权声明html数据 失败:htmlData = null

E/HmsMapKit_TileCache_38: startUrlRequest 身份失败,没有 许可获得瓷砖。验证结果:060011

PS:this demo 也有同样的问题。

【问题讨论】:

    标签: android android-studio huawei-mobile-services huawei-developers huawei-map-kit


    【解决方案1】:

    你可以先参考this Docs看看有没有错误码。

    官方演示也运行不正确。所以问题很有可能是由签名或 API 密钥问题引起的。

    请检查如下:

    • 检查AppGallery Connect中是否启用了Map Kit API。如果没有,打开它,下载.json文件替换代码中已有的,然后检查SHA256指纹是否正确。

    • 在 Android 的 Map SDK 5.0.0.300 或更高版本中,您必须在初始化地图之前设置 API 密钥。

    (1)在你的项目入口类中设置API key。

       // In the entrance class (inherited from android.app.Application) of the app,
        // call the setApiKey method in the overridden onCreate() method. 
        public class MyApp extends Application {
            @Override
            public void onCreate() {
                super.onCreate();
               // Set the API key.
                MapsInitializer.setApiKey("Your API Key");
            }
        }
    

    (2) 在 Fragment 或 MapView 中设置 API 密钥。

    @Override
        protected void onCreate(Bundle savedInstanceState) {
            Log.i(TAG, "onCreate: ");
            super.onCreate(savedInstanceState);
            // Set the API key before calling setContentView.
            MapsInitializer.setApiKey("Your API Key");
            setContentView(R.layout.basic_demo);
    

    关于这个问题的不同原因,你也可以参考这个answer

    【讨论】:

    • 正如我在问题中提到的,问题不在于代码级别,我已经完成了您建议的所有操作。但是,您提供的link 中的数字 6 表示“您的位置可能不受支持”,但我不确定它指的是哪个位置:(a) 开发者的华为帐户,(b) 客户的华为帐户, (c) 客户的 IP 地址 (d) 客户的网络提供商, (e) 分布在假定国家/地区的设备,或其他。如果可以的话,请清除它。
    • 您可以尝试选择设置>应用管理,清除HMS核心APK的缓存数据,重新打开地图应用看看是否有问题。
    • 至于6,你的测试设备上安装了SIM卡吗?如果有SIM卡,可以优先确定服务商。
    • 所以假设设备中没有安装SIM卡,并且使用VPN连接,并且HMS核心数据被清除。考虑到数字 6,它会起作用吗?
    • 我肯定会这样做。非常感谢您的回复。
    【解决方案2】:

    您需要生成并上传到 AppGallery Connect两个 SHA-256 密钥,一个用于调试版本,一个用于发布。

    要生成调试版本的密钥,您需要:

    1. 打开cmd
    2. 运行命令cd [path to directory with keytool.exe file] 例如:cd C:\Program Files\Java\jdk1.8.0_301\bin
    3. 运行命令keytool -list -v -keystore [path to debug.keystore]\debug.keystore -alias androiddebugkey -storepass android -keypass android
    4. 复制 SHA-256 密钥并将其添加到 AppGallery Connect -> 项目设置 -> 应用信息 -> SHA-256 证书指纹

    对于发布版本,一切都一样,但在 2 步中替换用于签署发布版本的密钥的路径,并在 3 步中输入真实的发布别名和密码

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-12-14
      • 2016-10-11
      • 1970-01-01
      • 1970-01-01
      • 2014-04-08
      • 2013-02-11
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多