关于百度地图例子坑人的经验教训

Posted 高速转弯

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于百度地图例子坑人的经验教训相关的知识,希望对你有一定的参考价值。

先是把百度地图API样例下载来,折腾了几天,总算编译通过了。这时写以下几点注意的:

通过java或android studio提供的工具,生成SHA1,然后将SHA1填入你自己帐号的控制台,并填入相应的包名,并最终生成AK,这个我想没有太多难度,网上教程一堆。

可以通过android studio的Build->Generated signed APK->create new,生成JKS文件,注意这里的SHA1一定要与控制台上的SHA一样,前面我就没注意,经常换一个PROJECT又重新生成一次JKS(相关的辅助荐可能填的也不一样),结果老是报错,对于新手,这也是一个坑点。

可以用命令查看相关信息,请用: keytool -v -list -keystore 具体文件名(如debug.keystore或者JKS文件)    一定要记得加上 -v 参数,不然只能看到SHA1,没有MD5

1、把百度地图上下载的libs库下的相关文件(建议全部,不管x86、ARM,可以少走弯路),有SO、JAR库,拷呗到你项目下的libs库下,这一又是一个坑点,百度地图的helloWorld样例上只写了这样一条。其实这根本不够,一定要在app下的builds.gradle文件中检查以下内容(深刻教训呀。。。。。。。。。)

(1)JAR文件: 将jar文件复制libs文件夹下,在dependencies项中添加配置命令,有分一次性及一个个二件方式:

dependencies {

     compile fileTree(include: [\'*.jar\'], dir: \'libs\') //这是一次性的导入所有JAR文件
}

注:一次性引入libs目录下所有jar文件 compile fileTree(include: [\'*.jar\'], dir: \'libs\')

单个逐一引入jar文件 compile files(\'libs/xxxxx.jar\')

(2)SO文件:   新版Gradle实现了自动打包编译so文件的功能,并且为so文件指定了默认的目录app/src/main/jniLibs,当然默认是没有这个文件夹的,我们只需要新建一个jniLibs文件夹,并将so文件复制到该文件夹下,编译运行即可。为了更好地管理第三方库文件,建议将jar文件和so文件放在一起,统一搁置在app/libs目录下,只需要在build.gradle的android一栏中添加下如命令,指定so文件的目录即可:

sourceSets {

main {
jniLibs.srcDir \'libs\'
}
}
(3)repositories {

flatDir {
dir \'libs\'
}
}

加上这上面三条信息,按照helloworld就可正常运行。

 

证书的debug以及realse设置:

Project Structure->Signing,这里点下+号,增加相应的内容,这个需与你生成JKS文件的信息一致,这里设置的信息会出现在app下的builds.gradle文件中:

signingConfigs {
config {
keyAlias \'hello\'
keyPassword \'XXXXX\'
storeFile file(\'D:/MYMY/hello.jks\')
storePassword \'XXXXX\'
}
}

 然后在Build Types上设置debug\\release认证信息,把前面signing设置的名字,填在Signing Config的项目里,如我的命名为config(这个可以选择,但不能在这里修改,如果要改,需要在signing里的标签项上作修改)

 

public class MainActivity extends Activity {
private TextureMapView mMapView = null;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
SDKInitializer.initialize(getApplicationContext()); //需要这里加这条初始化Context以及SDK的信息,在setContentView语句前面

setContentView(R.layout.activity_main);
mMapView = (TextureMapView) findViewById(R.id.bmapView);

另外一点需注意的是,以下内容需在<Application> </Application>之内,不能在外面,而权限<uses-permission android:name需在外面

<meta-data

android:name="com.baidu.lbsapi.API_KEY"
android:value="xxxxx" />
Library库文件的导入

将第三方Library库文件复制到项目根目录下,打开settings.gradle文件,添加配置命令,如:

include \':app\', \'TestApp\'

然后打开app module目录下的build.gradle,添加配置命令,如:

compile project(\':TestApp\')

推荐在项目根目录下新建如extras文件夹,将所有Library库文件都复制到该文件下,方便统一浏览管理,相应地变成:

include \':app\', \':extras:TestApp\'

compile project(\':extras:TestApp\')

aar文件

aar是压缩文件,相比jar文件,它能够含带res资源文件等,aar文件的引入方式有两种:

Module形式引入

libs目录引入

将aar文件复制到app下的libs文件夹中,在build.gradle配置文件中的android添加依赖:

repositories { flatDir { dirs \'libs\' } }

然后再在dependencies一栏中添加:

compile(name:\'具体库名\', ext:\'aar\')

 

以上是关于关于百度地图例子坑人的经验教训的主要内容,如果未能解决你的问题,请参考以下文章

【急】关于 CefSharp,有过成功开发经验的吗?

关于App打开高德和百度地图导航的代码

关于百度地图

关于matlab中用griddata绘制伪色彩图的一点经验教训

代码审查的 10 个经验教训

经验教训:git 代码得拉,不能拖