Android Studio调用高德地图api(补充)--出现白屏、定位不准确、fragment切换黑屏的问题、导航组件不显示

前言:

      本篇主要是针对上一篇的补充(Android Studio调用高德地图api_安卓小白~的博客-CSDN博客),在上一篇提到我下载新版的高德地图SDK地图展现不出来,但下载旧版的成功了这一问题,同时我在使用旧版的高德地图SDK发现在实现定位这一功能时十分的复杂,于是我又开始尝试使用新版的高德地图SDK,除了下载的是新版的高德地图SDK,具体的详细步骤与上一篇一样,虽然依旧遇到很多的问题,但最后结果还是令人满意的,下面我主要把我遇到的问题以及解决的方案分享一下,希望可以帮助到有需要的友友们~

1.在展示地图时点击运行出来是白屏,下面报的错误如下:

        从这个报错可以看出来是隐私合规校验失败,我一开始感觉很奇怪,因为我已经给了打开网络等权限,然后之后我又去高德开放平台里面阅读资料,发现旁边有开发注意事项,感兴趣的小伙伴可以去看一下。

       看完之后发现需要更新隐私合规状态,需要在初始化地图之前完成,于是我在java文件中添加了以下代码后,地图便可以正常的显示出来。

在fragment里添加:
AMapLocationClient.updatePrivacyShow(getContext(),true,true);
AMapLocationClient.updatePrivacyAgree(getContext(),true);

在activity里添加:
AMapLocationClient.updatePrivacyShow(getApplicationContext(),true,true);
AMapLocationClient.updatePrivacyAgree(getApplicationContext(),true);

 2.在实现定位功能时,下面没有报错,而是有一些提示:

        后经过查阅资料发现,若在AndroidManifest.xml文件中添加<uses-permission android:name="android.permission.INTERNET"/>依然无效的话,则是因为SDK>=29时需要配置网络白名单,然后我在build.gradle修改了SDK的版本后,成功实现了定位的功能。

3.fragment切换有时会出现短暂的黑屏问题:

        我的解决方案是将mapView改为TextureMapView,注意布局文件改了以后,在java中的定义也需要一起改变。具体如下图所示:

<com.amap.api.maps.TextureMapView
        android:id="@+id/map"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent" />

4.导航组件不显示

        我当时下面没有报错,但是一直跳不到导航的界面,后来查看了高德开放平台里面的常见问题解决方法后,进行了多次尝试,发现使用导航组件还需要在AndroidManifest.xml加入下面的代码:

<activity android:name="com.amap.api.navi.AmapRouteActivity"
            android:theme="@android:style/Theme.NoTitleBar"
            android:configChanges="orientation|keyboardHidden|screenSize" />

       加入后可以发现可以正常跳转。

以上便是我遇到的问题以及解决的方案,希望可以帮助到有需要的人,喜欢的可以点赞收藏噢~如果还有其它关于地图导入、实现的问题,也可以贴出,大家一起讨论解决!

  • 7
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值