【问题标题】:HMS core Map kit, map loads but no renderingHMS核心地图套件,地图加载但不渲染
【发布时间】:2020-11-06 00:45:49
【问题描述】:

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

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

所以,我使用视图来表示地图。

onMapReady 被调用,查看加载,我可以与地图交互,添加图钉,找到我的位置等。 但我看不到地图,只有空白图块。

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

我也试过华为Github上的demo,结果是一样的。 我也试过fragment,结果一样。

我的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"/>

我的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);

我的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();

}

结果:

【问题讨论】:

    标签: java android huawei-mobile-services huawei-developers


    【解决方案1】:

    感谢您提出非常详细的问题。起初看起来this 已经讨论过问题,但您没有收到任何错误。

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

    如需参考,请查看this codelab,了解如何创建签名证书。

    我已经尝试了我上面链接的存储库,更改了包名称,交换了 App ID,填写了 API Key 并添加了 agconnect json 文件。

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

    尝试卸载该应用并重新安装新签名的应用。很难说这是否也能为您解决问题,但如果不是,最好有一个完整的堆栈跟踪来解决问题。

    【讨论】:

      【解决方案2】:

      尝试在String 中编辑您的API_KEY API_KEY~/utils/MapUtils.java 中(如果您尝试了来自Huawei Codelabs (Github) 的示例代码)

      尝试在您的入口课程中直接将您的API_KEY 添加到MapsInitializer.setApiKey("Your_API_KEY_Here")(例如MyActivityMainActivity)。

      如果上述方法没有帮助,请检查API_KEY 必须更新/使用的地方。就我而言,这导致了问题。

      【讨论】:

      • 感谢您的回答,但我已经用接受的答案解决了我的问题。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-03-03
      • 2022-07-30
      • 1970-01-01
      • 2020-01-16
      • 2020-11-20
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多