HMS 核心地图套件,地图加载但无渲染

The*_*ras 6 java android huawei-mobile-services huawei-developers

我正在测试华为的地图套件。

该应用程序已在 App Gallery Connect 中创建,我完成了所有步骤。其他 HMS 服务工作正常。我所有的依赖都是正确的。

因此,我使用视图来表示地图。

onMapReady被调用,查看负载,我可以与地图进行互动,增加销,找到我的位置等,但我不能看地图,只有空白的砖。

我没有收到错误,onMapReady被调用就好了。

我也试过华为 Github 上的演示,结果是一样的。我也尝试过片段,结果相同。

我的 mapView

  <com.huawei.hms.maps.MapView xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:map="http://schemas.android.com/apk/res-auto"
    android:id="@+id/mapView"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    map:cameraTargetLat="48.893478"
    map:cameraTargetLng="2.334595"
    map:cameraZoom="8.5"/>
Run Code Online (Sandbox Code Playgroud)

我的 onCreate

 protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_huawei_map_test);
    Log.d(TAG, "yo: ");
    if (!hasPermissions(this, RUNTIME_PERMISSIONS)) {
        ActivityCompat.requestPermissions(this, RUNTIME_PERMISSIONS, 100);
    }
    mMapView = findViewById(R.id.mapView);
    Bundle mapViewBundle = null;
    if (savedInstanceState != null) {
        mapViewBundle = savedInstanceState.getBundle(MAPVIEW_BUNDLE_KEY);
    }
    MapsInitializer.setApiKey("");//my key
    mMapView.getMapAsync(this);
    mMapView.onCreate(mapViewBundle);
Run Code Online (Sandbox Code Playgroud)

我的 onMapReady

 @Override
public void onMapReady(HuaweiMap map) {
    //get map instance in a callback method
    Log.d(TAG, "onMapReady: ");
    hMap = map;
    //hMap.setMapType(HuaweiMap.MAP_TYPE_TERRAIN);
    hMap.setMyLocationEnabled(true);
    hMap.moveCamera(CameraUpdateFactory.newLatLngZoom(new LatLng(48.893478, 2.334595), 10));
    Marker mMarker = hMap.addMarker(new MarkerOptions().position(new LatLng(48.893478, 2.334595)));
    mMarker.showInfoWindow();

}
Run Code Online (Sandbox Code Playgroud)

结果:

小智 2

感谢您提出非常详细的问题。乍一看,这个问题似乎已经讨论过,但您没有收到任何错误。

一个常见的未检测到的错误是您没有正确签署应用程序。尝试克隆官方Codelab 存储库并从那里编译代码。您需要使用自己的密钥对您的应用程序进行签名,并在AGC控制台上提供相应的SHA指纹。

作为参考,请查看Codelab,了解如何创建签名证书。

我尝试了上面链接的存储库,更改了包名称,交换了应用程序 ID,填写了 API 密钥并添加了 agconnect json 文件。

在 AGC 控制台上,我输入了正确的 SHA 指纹,但使用错误的密钥签署了我的应用程序。重建后我想知道为什么你的错误仍然发生。一定是因为应用程序无法使用不同的签名进行更新,这是有道理的。

尝试卸载该应用程序并再次安装新签名的应用程序。很难说这是否也能解决你的问题,但如果不能,最好有一个完整的堆栈跟踪来排除故障。