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 指纹,但使用错误的密钥签署了我的应用程序。重建后我想知道为什么你的错误仍然发生。一定是因为应用程序无法使用不同的签名进行更新,这是有道理的。
尝试卸载该应用程序并再次安装新签名的应用程序。很难说这是否也能解决你的问题,但如果不能,最好有一个完整的堆栈跟踪来排除故障。
| 归档时间: |
|
| 查看次数: |
835 次 |
| 最近记录: |