关于使用百度地图开发的问题

qq_40252810 2019-06-02 12:24:32
我检查了好几遍,觉得在百度地图创建应用时,填写的sha1(这个是我在工程里面直接复制的),package,还有生成的KEY,我看是没错的,而且确实申请成功了,但是在工程里面运行的时候还是报错,说“鉴权信息错误”,让我核对sha1、KEY,真不知道哪里错了,KEY是我直接在生成的应用里面复制的,
而且我也就用了基本的用法,
SDKInitializer.initialize(this);
setContentView(R.layout.activity_main);

在XML里面
<com.baidu.mapapi.map.MapView
android:id="@+id/bmapView"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:clickable = "true"
/>
在manifest也加了很多的权限申请,也加了meta-data,在proguard-project.txt也加了
-keep class com.baidu.** {*;}
-keep class vi.com.** {*;}
-dontwarn com.baidu.**
请问还有啥需要注意的吗?
...全文
1767 26 打赏 收藏 转发到动态 举报
写回复
用AI写文章
26 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq_40252810 2019-06-12
  • 打赏
  • 举报
回复
我费了九牛二虎之力终于初步显示出来了,主要的不同就是没用官网下载的包,直接把一个已经运行成功的项目里的包拷过来了,然后就可以了,或许是官网下载的包太新了,和我哪里的设置不一致了,不太懂
qq_40252810 2019-06-10
  • 打赏
  • 举报
回复
谁写的有比较简单的例程吗?能不能上传一下让菜鸟参考参考谢谢,需要积分下载也行
qq_40252810 2019-06-10
  • 打赏
  • 举报
回复
又重新建了一个项目,照着百度地图开发官网说明一步步弄,其中在xml使用MapView出现了问题,我换成TextureMapView运行通过了,但是还是老问题,我运行成功后,不管是在模拟器还是真机上,都只显示网格不显示地图,这个破问题耽误了有半个月了,网上查资料也无头绪,下载了个安全码检验工具显示KEY也是对的,无奈
Jimmy_buer 2019-06-10
  • 打赏
  • 举报
回复
引用 8 楼 qq_40252810 的回复:
[quote=引用 14 楼 不二进阶之路 的回复:] 1.说个很早以前我犯的傻瓜错误. 申请key的时候填写的sha1, 数字之间不要有符号间隔. 2.确保apk打包的时候使用的是输入sha1的那个keystore. 其他的按照官网来,就可以了.
确保apk打包的时候使用的是输入sha1的那个keystore?这句话是啥意思?我就申请了KEY,在manifest添加,然后就run as,run as有问题我就debug as,没见打包时要输入keystore啊, 还有就是,我到现在都不明白,既然有发布版sha1和开发版sha1的区分,那为啥在申请KEY的时候,发布版sha1是必填项?不懂[/quote] 我记得百度地图是有eclipse的运行版本的. 基本可以断定是sha1的取错了,然后获取的百度地图的key自然就不能用,然后就只能展示网格... apk打包是需要keystore的,eclipse打包默认的也有一个. 这里是想让你自己去指定,然后生成apk包,安装到手机,就行了.
qq_40252810 2019-06-09
  • 打赏
  • 举报
回复
引用 22 楼 loveroot68 的回复:
百度地图API挺好用的啊!

能说一下基本步骤吗?可以的话希望说的详细点,就完成最基本的功能就可以了,谢谢
loveroot68 2019-06-07
  • 打赏
  • 举报
回复
百度地图API挺好用的啊!
qq_40252810 2019-06-07
  • 打赏
  • 举报
回复
up,谁说一下如何基于eclipse用地图,百度地图高德地图都可以,我现在只做到了显示一片网格,地图都没显示,有谁详细说一下基本步骤吗?只要能把地图显示出来就行,我现在做的就是在eclipse的windows——prefrence得到sha1, 申请key的时候把这个sha1填入发布版那一行得到key,又把MAPVIEW加入XML文件里面,在MAINACTIVITY调用,然后DEBUG AS,在模拟器里面是空白,把bin里的apk下载到手机上是一片网格,自己下载了一个检测安全码的程序,检测的key是对的,不知道问题出在哪里了?
qq_40252810 2019-06-06
  • 打赏
  • 举报
回复
我的qq是

引用 18 楼 王能 的回复:
在build.gradle里面有配置

signingConfigs {
release {
storeFile ...
storePassword "..."
keyAlias "..."
keyPassword "..."
}
debug {
......
}
}

这就是你run或debug的key,如果你没有写那么直接写上你正式的就行了,不然就是楼上所说的默认key

我用的是eclipse,怎么设置?
qq_40252810 2019-06-06
  • 打赏
  • 举报
回复
引用 14 楼 不二进阶之路 的回复:
1.说个很早以前我犯的傻瓜错误. 申请key的时候填写的sha1, 数字之间不要有符号间隔.

2.确保apk打包的时候使用的是输入sha1的那个keystore.

其他的按照官网来,就可以了.

确保apk打包的时候使用的是输入sha1的那个keystore?这句话是啥意思?我就申请了KEY,在manifest添加,然后就run as,run as有问题我就debug as,没见打包时要输入keystore啊,
还有就是,我到现在都不明白,既然有发布版sha1和开发版sha1的区分,那为啥在申请KEY的时候,发布版sha1是必填项?不懂
qq_40252810 2019-06-06
  • 打赏
  • 举报
回复
还是不行,百度高德都没成功,奇奇怪怪的问题,我的q 1518492140 ,有谁加一下吗?
王能 2019-06-06
  • 打赏
  • 举报
回复
在build.gradle里面有配置

    signingConfigs {
        release {
            storeFile ...
            storePassword "..."
            keyAlias "..."
            keyPassword "..."
        }
        debug {
           ......
        }
    }
这就是你run或debug的key,如果你没有写那么直接写上你正式的就行了,不然就是楼上所说的默认key
gxh_apologize 2019-06-05
  • 打赏
  • 举报
回复
http://lbsyun.baidu.com/index.php?title=androidsdk/guide/create-project/ak
楓逝曇現 2019-06-05
  • 打赏
  • 举报
回复
努力努力努力再努力。嗯
Jimmy_buer 2019-06-05
  • 打赏
  • 举报
回复
1.说个很早以前我犯的傻瓜错误. 申请key的时候填写的sha1, 数字之间不要有符号间隔. 2.确保apk打包的时候使用的是输入sha1的那个keystore. 其他的按照官网来,就可以了.
qq_40252810 2019-06-04
  • 打赏
  • 举报
回复
好的谢谢,回头试一下,不管怎样也得至少搞定一个
旅行蜗牛 2019-06-04
  • 打赏
  • 举报
回复
高德官网获取sha1 java 方法:参考 https://lbs.amap.com/cooperation/technical_advisory/?tab=2 public static String sHA1(Context context) { try { PackageInfo info = context.getPackageManager().getPackageInfo( context.getPackageName(), PackageManager.GET_SIGNATURES); byte[] cert = info.signatures[0].toByteArray(); MessageDigest md = MessageDigest.getInstance("SHA1"); byte[] publicKey = md.digest(cert); StringBuffer hexString = new StringBuffer(); for (int i = 0; i < publicKey.length; i++) { String appendString = Integer.toHexString(0xFF & publicKey[i]) .toUpperCase(Locale.US); if (appendString.length() == 1) hexString.append("0"); hexString.append(appendString); } return hexString.toString(); } catch (NameNotFoundException e) { e.printStackTrace(); } catch (NoSuchAlgorithmException e) { e.printStackTrace(); } return null; } 感觉高德比百度好用些,至少文档多而且全而且好用
qq_40252810 2019-06-04
  • 打赏
  • 举报
回复
引用 4 楼 gxh_apologize 的回复:
[quote=引用 3 楼 qq_40252810 的回复:]
[quote=引用 2 楼 gxh_apologize 的回复:]
你用的开发版SHA1,就打bebug包

但是我在百度开发平台申请应用的时候填写的是发布版sha1那一栏,因为那一栏打了*号,好像是必填项,请问申请发布版sha1和开发版的sha1,这两个sha1一样吗?是不是都是从window->preferences那里找的?[/quote]
两个SHA1不一样。那你直接打成签名包运行就好了

控制台窗口中输入 cd .android 定位到 .android 文件夹

debug.keystore:命令为:keytool -list -v -keystore debug.keystore

自定义的 keystore:命令为:keytool -list -v -keystore apk的keystore[/quote]
还有,debug.keystore这个文件我找到了, apk的keystore在哪里啊?
gxh_apologize 2019-06-04
  • 打赏
  • 举报
回复
引用 5 楼 qq_40252810 的回复:
[quote=引用 4 楼 gxh_apologize 的回复:] [quote=引用 3 楼 qq_40252810 的回复:] [quote=引用 2 楼 gxh_apologize 的回复:] 你用的开发版SHA1,就打bebug包
但是我在百度开发平台申请应用的时候填写的是发布版sha1那一栏,因为那一栏打了*号,好像是必填项,请问申请发布版sha1和开发版的sha1,这两个sha1一样吗?是不是都是从window->preferences那里找的?[/quote] 两个SHA1不一样。那你直接打成签名包运行就好了 控制台窗口中输入 cd .android 定位到 .android 文件夹 debug.keystore:命令为:keytool -list -v -keystore debug.keystore 自定义的 keystore:命令为:keytool -list -v -keystore apk的keystore[/quote] 这是说,我其实提取的是开发版的sha1,需要debug as才可以,用run as 运行就不可以?[/quote] 有可能提取的是开发版的sha1 你自己试一下就知道了。我前段时间用百度地图写了个Demo呢,没啥问题。反正两个SHA1别混了
qq_40252810 2019-06-04
  • 打赏
  • 举报
回复
我下载了个安全码检验工具,是通过的,就是不知道通过的是开发版还是发布版?
哈哈的bug 2019-06-04
  • 打赏
  • 举报
回复
引用 9 楼 qq_40252810 的回复:
只有网格,不显示地图,不知道为啥,申请key时的包名也对啊
你上面的第一个问题应该是开发版要对应App的debug版 发布版对应release版 然后第二个问题安卓9.0版本限制http 请求,(建议用3D版哦 ,百度应该有3D版MapView吧 ,我用的是高德不是太清楚,不过应该也差不多吧)
加载更多回复(6)

80,350

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧