关于百度地图例子坑人的经验教训
先是把百度地图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')