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

先是把百度地图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')

 

posted on 2017-11-09 16:43  高速转弯  阅读(539)  评论(0编辑  收藏  举报

导航