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


    先是把百度地图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 elease认证信息,把前面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')

  • 相关阅读:
    如何处理消息堆积
    如何避免消息的重复发送
    内存泄漏和内存溢出的关系
    数据挖掘
    servlet
    数据驱动安全需三大核心新技术
    JS 入门经典 第三章 判断、循环和函数
    JS 高级程序设计 第三章
    JS入门经典
    JS高级程序设计1-2章
  • 原文地址:https://www.cnblogs.com/gszw/p/7810192.html
Copyright © 2020-2023  润新知