Bmob集成

文档

3.5.0

配置

说明

为降开发使用成本,v3.4.7+同步提供aar格式文件,含libbmob.so、依赖jar包(okhttpokio、rx、gson等)及自更组件需资源文件。开发者无需配置libbmob.so、添依赖jar、复制自更组件资源文件,仅添compile 'cn.bmob.android:bmob-sdk:3.5.0'即可。

操作
  • build.gradle(app)

      apply plugin: 'com.android.application'
    
      android {
          ...
      }
    
      dependencies {
          compile 'cn.bmob.android:bmob-sdk:3.5.0'
          /*bmob*/
      }
    复制代码
  • build.gradle(project)

      // Top-level build file where you can add configuration options common to all sub-projects/modules.
    
      buildscript {
          ...
      }
    
      allprojects {
          repositories {
              google()
              jcenter()
              maven { url "https://raw.github.com/bmob/bmob-android-sdk/master" }
          }
      }
    复制代码
问题

gradle添okhttpokiounable to merge dex

分析

据上标注知依赖重复。

解决
  • 二 删gradle中okhttpokio
缺陷

通常如下排除指定库:

compile('com.squareup.okhttp3:okhttp:3.9.1'){
    exclude group : 'com.squareup.okio'
}
复制代码

然Bmob不支持,只能删gradle单独所添okhttpokio。如此影响用特定版okhttp/okio

兼容

build.gradle(app):

apply plugin: 'com.android.application'

android {
    // 兼容6.0出错于dependencies用compile 'cn.bmob.android:http-legacy:1.0'
    useLibrary 'org.apache.http.legacy'
    ...
}

dependencies {
    compile 'cn.bmob.android:http-legacy:1.0'
    /*兼6.0加依赖org.apache.http.legacy.jar*/
}
复制代码

3.5.5

compile 'cn.bmob.android:bmob-sdk改版本号3.5.5,其它同3.5.0

cn_bmob_android_bmob_sdk_3_5_5

<component name="libraryTable">
  <library name="cn.bmob.android:bmob-sdk-3.5.5">
    <CLASSES>
      <root url="jar://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/bmob-sdk-3.5.5.aar/a9411d656b3bb91af60cd40591f1e007/jars/libs/rxandroid-1.2.0.jar!/" />
      <root url="jar://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/bmob-sdk-3.5.5.aar/a9411d656b3bb91af60cd40591f1e007/jars/libs/rxjava-1.1.6.jar!/" />
      <root url="file://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/bmob-sdk-3.5.5.aar/a9411d656b3bb91af60cd40591f1e007/res" />
      <root url="jar://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/bmob-sdk-3.5.5.aar/a9411d656b3bb91af60cd40591f1e007/jars/libs/BmobSDK_3.5.5_20170420.jar!/" />
      <root url="jar://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/bmob-sdk-3.5.5.aar/a9411d656b3bb91af60cd40591f1e007/jars/libs/okio-1.7.0.jar!/" />
      <root url="jar://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/bmob-sdk-3.5.5.aar/a9411d656b3bb91af60cd40591f1e007/jars/classes.jar!/" />
      <root url="jar://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/bmob-sdk-3.5.5.aar/a9411d656b3bb91af60cd40591f1e007/jars/libs/gson-2.6.2.jar!/" />
      <root url="jar://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/bmob-sdk-3.5.5.aar/a9411d656b3bb91af60cd40591f1e007/jars/libs/okhttp-3.3.1.jar!/" />
    </CLASSES>
    <JAVADOC />
    <SOURCES />
  </library>
</component>
复制代码

cn.bmob.android:bmob-sdk-3.5.5rxandroidrxjavaokiogsonokhttp

出处

  • 配置、同步
  • .idea->libraries
  • 找cn_bmob_android_bmob_sdk_3_5_5

3.5.9

配置

说明

考虑相当一部分开发者初/中级,本着让开发者做事更少原则,仍暂把依赖第三方库和so文件放maven仓库之aar包,两行配置即可开发(无需so和相关配置)。用特定版第三方库:

  • AS依赖视图删aar中okio等;
  • 改为本地依赖SDK之jar包方式,似Eclipse开发;

近期版基本稳定该方式,版本间亦向下兼容。后逐淡出第三方库或改善体验。

操作
  • build.gradle(app)

      apply plugin: 'com.android.application'
    
      android {
          ...
      }
    
      dependencies {
          compile 'cn.bmob.android:bmob-sdk:3.5.9'
          /*bmob*/
      }
    复制代码
  • build.gradle(project)

      // Top-level build file where you can add configuration options common to all sub-projects/modules.
    
      buildscript {
          ...
      }
    
      allprojects {
          repositories {
              google()
              jcenter()
              maven { url "https://raw.github.com/bmob/bmob-android-sdk/master" }
          }
      }
    复制代码
问题

3.5.53.5.9unable to merge dex

分析
  • .idea->libraries
  • 找cn_bmob_android_bmob_sdk_3_5_9
    <component name="libraryTable">
      <library name="cn.bmob.android:bmob-sdk-3.5.9">
        <CLASSES>
          <root url="file://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/bmob-sdk-3.5.9.aar/45f9481fb26fcecad5bc4ae0783c9a99/res" />
          <root url="jar://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/bmob-sdk-3.5.9.aar/45f9481fb26fcecad5bc4ae0783c9a99/jars/libs/okio-1.12.0.jar!/" />
          <root url="jar://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/bmob-sdk-3.5.9.aar/45f9481fb26fcecad5bc4ae0783c9a99/jars/libs/gson-2.6.2.jar!/" />
          <root url="jar://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/bmob-sdk-3.5.9.aar/45f9481fb26fcecad5bc4ae0783c9a99/jars/libs/org.apache.http.legacy.jar!/" />
          <root url="jar://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/bmob-sdk-3.5.9.aar/45f9481fb26fcecad5bc4ae0783c9a99/jars/classes.jar!/" />
          <root url="jar://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/bmob-sdk-3.5.9.aar/45f9481fb26fcecad5bc4ae0783c9a99/jars/libs/rxandroid-1.2.0.jar!/" />
          <root url="jar://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/bmob-sdk-3.5.9.aar/45f9481fb26fcecad5bc4ae0783c9a99/jars/libs/BmobSDK_3.5.9_20180102.jar!/" />
          <root url="jar://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/bmob-sdk-3.5.9.aar/45f9481fb26fcecad5bc4ae0783c9a99/jars/libs/rxjava-1.1.6.jar!/" />
        </CLASSES>
        <JAVADOC />
        <SOURCES />
      </library>
    </component>
    复制代码
  • cn.bmob.android:bmob-sdk-3.5.9okhttp3.5.5时gradle删单独所添okhttpokio(避unable to merge dex),故升至3.5.9时gradle缺okhttpunable to merge dex
解决

gradle添okhttp

隐患

据cn_bmob_android_bmob_sdk_3_5_9知cn.bmob.android:bmob-sdk-3.5.9okiogsonorg.apache.http.legacy.jarrxandroidrxjava。上述解决(gradle添okhttp)后或致unable to merge dex,详情:

据图知 okio重复。

到此疑惑,既然仅cn.bmob.android:bmob-sdk-3.5.9okio且gradle没单独添okio,又为何okio重复?

原因为cn.bmob.android:bmob-sdk-3.5.9不含okhttp,为避unable to merge dex,gradle单独添okhttp。而okhttp引用okio(最新版),与cn.bmob.android:bmob-sdk-3.5.9okio重复(两okio不同版亦重)。如下解决:

compile('com.squareup.okhttp3:okhttp:3.9.1') {
    exclude group: 'com.squareup.okio'
}
复制代码

兼容

cn.bmob.android:bmob-sdk-3.5.9org.apache.http.legacy.jar,已兼容,无需另设。报错如下设: build.gradle(app):

apply plugin: 'com.android.application'

android {
    ...
}

dependencies {
compile 'cn.bmob.android:http-legacy:1.0'
/*兼6.0*/
}
复制代码

补充

集成除上述外另需添相应权限。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值