Android 高德地图 com.amap.api.services.core.AMapException: 用户MD5安全码未通过

当遇到高德地图报AMapException关于MD5安全码的错误时,应检查应用的key和SHA1码是否正确。在AndroidStudio中,可以通过Gradle任务获取debug和发布版的SHA1码,以确保与高德地图平台设置匹配。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

高德地图报com.amap.api.services.core.AMapException: 用户MD5安全码未通过

       先进去高德地图平台找到对应应用的key,点击设置查看SHA1码或者包名是否正确,这两个因素是造成这个问题的原因

       如何获取SHA1码:

                 1.android studio  debug环境中点击右边Gradle->Task->android->双击signingReport,如下图得到debug环境的SHA1码  

 2.Android studio  发布版SHA1码获取:

               Android studio中,生成jks文件,然后再控制台输入keytool -v -list -keystore 背后加上jks文件所在地址获取SHA1值如下图:

红圈中就是发布版的SHA1码。这样就解决高德地图用户MD5安全码未通过的问题了 

标注一下下面每行代码的作用package com.example.mapdemo; import android.content.Context; import android.content.Intent; import android.content.pm.PackageManager; import android.os.Bundle; import android.util.Log; import android.Manifest; import android.view.KeyEvent; import android.view.inputmethod.InputMethodManager; import android.widget.Toast; import androidx.activity.EdgeToEdge; import androidx.activity.result.ActivityResultLauncher; import androidx.activity.result.contract.ActivityResultContracts; import androidx.annotation.NonNull; import androidx.appcompat.app.AppCompatActivity; import androidx.core.graphics.Insets; import androidx.core.view.ViewCompat; import androidx.core.view.WindowInsetsCompat; import com.amap.api.location.AMapLocation; import com.amap.api.location.AMapLocationClient; import com.amap.api.location.AMapLocationClientOption; import com.amap.api.location.AMapLocationListener; import com.amap.api.maps.AMap; import com.amap.api.maps.CameraUpdate; import com.amap.api.maps.CameraUpdateFactory; import com.amap.api.maps.LocationSource; import com.amap.api.maps.UiSettings; import com.amap.api.maps.model.CameraPosition; import com.amap.api.maps.model.LatLng; import com.amap.api.maps.model.Marker; import com.amap.api.maps.model.MarkerOptions; import com.amap.api.services.core.AMapException; import com.amap.api.services.core.LatLonPoint; import com.amap.api.services.core.PoiItem; import com.amap.api.services.geocoder.GeocodeAddress; import com.amap.api.services.geocoder.GeocodeQuery; import com.amap.api.services.geocoder.GeocodeResult; import com.amap.api.services.geocoder.GeocodeSearch; import com.amap.api.services.geocoder.RegeocodeAddress; import com.amap.api.services.geocoder.RegeocodeQuery; import com.amap.api.services.geocoder.RegeocodeResult; import com.amap.api.services.poisearch.PoiResult; import com.amap.api.services.poisearch.PoiSearch; import com.example.mapdemo.databinding.ActivityMainBinding; import java.util.ArrayList; import java.util.List; publi
最新发布
03-17
### 获取高德地图Android平台上的POI数据 #### 准备工作 为了能够在Android应用中使用高德地图API来获取POI数据,开发者需要先申请并配置好相应的环境。这包括但不限于获得有效的API Key,并将其集成到项目当中[^1]。 #### 添加依赖项与权限设置 确保项目的`build.gradle`文件内包含了最新的高德地图SDK依赖声明;同时,在`AndroidManifest.xml`中加入网络访问以及定位服务所需的权限声明,以便能够顺利调用远程服务器接口和服务设备位置信息。 #### 编写代码逻辑 下面给出了一段基于官方文档简化后的Java代码片段用于展示如何发起一次基本的POI查询请求: ```java // MainActivity.java 中的部分方法实现 import com.amap.api.services.core.AMapException; import com.amap.api.services.core.LatLonPoint; import com.amap.api.services.poisearch.PoiItem; import com.amap.api.services.poisearch.PoiResult; import com.amap.api.services.poisearch.PoiSearch; public class MainActivity extends AppCompatActivity implements PoiSearch.OnPoiSearchListener { private void searchPOIs(String keyword, double latitude, double longitude){ LatLonPoint point = new LatLonPoint(latitude,longitude); PoiSearch.Query query = new PoiSearch.Query(keyword,"",""); // 查询关键字、类型、城市名(留空表示全国范围) query.setPageSize(20); // 单页结果数量上限 query.setPageNum(0); // 当前页面索引 PoiSearch poiSearch = new PoiSearch(this,query); poiSearch.setOnPoiSearchListener(MainActivity.this); poiSearch.searchPOIAsyn(point); // 异步搜索指定坐标附近的POI列表 } @Override public void onPoiSearched(PoiResult result, int rCode) { if (rCode == AMapException.CODE_AMAP_SUCCESS && result != null && result.getQuery() != null){ List<PoiItem> pois = result.getPois(); for (PoiItem item : pois){ Log.d("POISample", "Found POI:" +item.getTitle()); } }else{ Log.e("POISample", String.format("Error occurred during searching:%d",rCode)); } } } ``` 上述代码展示了怎样创建一个简单的POI搜索器实例,并设置了回调监听器以处理返回的结果集。当接收到响应后会遍历打印出每一个匹配的兴趣点名称。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Z_Try

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值