6

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

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

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

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

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

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

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

}

结果:

4

2 回答 2

2

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

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

如需参考,请查看代码实验室,了解如何创建签名证书。

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

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

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

于 2020-07-16T16:08:10.383 回答
0

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

或者

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

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

于 2021-04-20T15:30:56.753 回答