华为地图无法加载瓦片。

6
我按照这里这里的文档进行了操作,但是地图视图没有加载任何瓦片。
我使用了HMS Toolkit,并且配置向导结果显示成功。我也已经设置了我的API密钥,在我的应用程序类和活动类的onCreate方法中都使用了下面这行代码:
MapsInitializer.setApiKey(HUAWEI_API_KEY);
以下是设备信息和SDK版本:
- 手机型号: 华为Y7 Prime 2018 - EMUI版本: 8.0.0 - HMS Core版本: 6.1.0.305 - 地图SDK版本: com.huawei.hms:maps:6.0.0.301
以下是屏幕截图: enter image description here 相关错误日志:
E/HmsMapKit_MapView_151: createDelegate: creator == null
E/HmsMapKit_GrsClient_24: GRS returns empty.
E/HmsMapKit_ErrorTraceLogPusher_4: cache error trace log : ErrorTraceLogDTO{ scenario = GET_GRS_URL_FAILED', message='GRS returns empty, service name is com.huawei.hms.map.'}
E/HmsMapKit_ErrorTraceLogPusher_12: eventId is null or empty.
E/HmsMapKit_AuthenticateClient_27: Exception occur com.huawei.hms.maps.foundation.client.c
E/HmsMapKit_ErrorTraceLogPusher_4: cache error trace log : ErrorTraceLogDTO{ scenario = ACCESS_SERVICE_ERROR', message='060001 : NETWORK_ERROR'}
E/HmsMapKit_AuthenticateCache_0: authenticate error, throw RetryException.
E/HmsMapKit_CopyrightDelegate_27: get copyright statement html data failed: htmlData = null
E/HmsMapKit_TileCache_38: startUrlRequest Identity fail, do not has permission get tile. authResult :060011
PS:我在这个演示中也遇到了同样的问题。
2个回答

2

首先,您可以参考此文档查看是否存在错误代码。

官方演示也无法正常运行,因此很可能是由于签名或API密钥问题引起的。

请按以下方式检查:

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

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

(1) 在项目入口类中设置API密钥。

   // 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);

关于此问题的不同原因的详细信息,您也可以参考这个答案


1
正如我在问题中提到的那样,问题不在代码层面上,我已经按照您建议的做了一切。然而,您提供的这个链接中的数字6表明“您的位置可能不受支持”,但我不确定它指的是哪个位置:(a)开发者的华为帐户,(b)客户的华为帐户,(c)客户的IP地址,(d)客户的网络提供商,(e)分布在所谓国家/地区的设备,还是其他什么。如果您能澄清这一点,那就太好了。 - e.y66
你可以尝试选择“设置”>“应用管理”,清除HMS核心APK的缓存数据,然后再次打开地图应用程序,看看问题是否存在。 - zhangxaochen
假设设备中没有SIM卡,它使用VPN连接,并且清除了HMS Core数据。那么考虑到数字6,它会工作吗? - e.y66
这与VPN无关,而是与华为ID设置的地区有关。您可以在华为应用商店中设置地区。 - zhangxaochen
1
我肯定会做的。非常感谢您的回复。 - e.y66
显示剩余3条评论

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

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

  1. 打开命令提示符
  2. 运行命令 cd [keytool.exe文件所在目录的路径] 例如:cd C:\Program Files\Java\jdk1.8.0_301\bin
  3. 运行命令 keytool -list -v -keystore [debug.keystore的路径]\debug.keystore -alias androiddebugkey -storepass android -keypass android
  4. 复制SHA-256密钥并将其添加到AppGallery Connect->项目设置->应用信息->SHA-256证书指纹

对于发布版本,请执行相同的操作,但需要在第2步替换签署发布构建的密钥路径,并在第3步输入真实的发布别名和密码。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接