Bmob后端云的集成以及需要注意的坑
来源:互联网 发布:access数据库怎么打开 编辑:程序博客网 时间:2024/05/26 20:22
因为现在有个小项目需要自己一个人去完成。服务器的程序就成了个不大不小的问题。自己写的话,无疑耗时耗力,效果还不好。于是乎,便决定集成下Bmob后端云。
简介
Bmob 提供了实时数据与文件存储功能,轻松实现应用“云与端”的数据连通。数据存储除了常规应用文本信息的存储,还可以存储图片、视频、音频、地理位置等信息。
此外数据服务还内置用户系统、即时通讯、权限控制等,开发者几行代码即可实现快速集成。
恩,听起来就很动人,尤其是对我这后台学的不怎么样的人是个很大的帮助啊!话不多说,开撸!
集成方法
不得不说,官网的介绍已经非常详细了。各种集成方法都介绍了。官网教程戳这里==》Bmob集成文档。
恩,我这里简单写下android studio的依赖集成方法。也是Bmob推荐的集成方法。
第一步 添加依赖
在 Project 的 build.gradle 文件中添加 Bmob的maven仓库地址,示例如下:
buildscript { repositories { jcenter() } dependencies { classpath 'com.android.tools.build:gradle:1.2.3' } } allprojects { repositories { jcenter() //**Bmob的maven仓库地址--必填** maven { url "https://raw.github.com/bmob/bmob-android-sdk/master" } } }
在app的build.gradle文件中添加compile依赖文件,示例如下:
apply plugin: 'com.android.application'android { compileSdkVersion 22 buildToolsVersion '22.0.1' **兼容Android6.0系统所需,如果这句话报错,可在dependencies标签下使用compile 'cn.bmob.android:http-legacy:1.0'** useLibrary 'org.apache.http.legacy' ...}dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) //以下SDK开发者请根据需要自行选择 //bmob-sdk:Bmob的android sdk包,包含了Bmob的数据存储、文件等服务,以下是最新的bmob-sdk:3.5.5 compile 'cn.bmob.android:bmob-sdk:3.5.5' //bmob-push:Bmob的推送包 compile 'cn.bmob.android:bmob-push:0.8' //bmob-im:Bmob的即时通讯包,注意每个版本的im依赖特定版本的bmob-sdk,具体的依赖关系可查看下面注释[2] compile 'cn.bmob.android:bmob-im:2.0.5@aar' compile 'cn.bmob.android:bmob-sdk:3.4.7-aar' //bmob-sms :Bmob单独为短信服务提供的包 compile 'cn.bmob.android:bmob-sms:1.0.1' //如果你想应用能够兼容Android6.0,请添加此依赖(org.apache.http.legacy.jar) compile 'cn.bmob.android:http-legacy:1.0' }
第二步 各种配置Bmob
在你的应用程序的AndroidManifest.xml文件中添加相应的权限:
<!--允许联网权限 --> <uses-permission android:name="android.permission.INTERNET" /> <!--获取GSM(2g)、WCDMA(联通3g)等网络状态的信息 --> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <!--获取wifi网络状态的信息 --> <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> <!--保持CPU 运转,屏幕和键盘灯有可能是关闭的,用于文件上传和下载 --><uses-permission android:name="android.permission.WAKE_LOCK" /> <!--获取sd卡写的权限,用于文件上传和下载--><uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /><!--允许读取手机状态 用于创建BmobInstallation--> <uses-permission android:name="android.permission.READ_PHONE_STATE" />
初始化BmobSDK
在应用程序启动的Activity的onCreate()方法中初始化Bmob功能。
懒人写一句
//默认初始化Bmob.initialize(this, "这里填你申请的Application ID");//集成统计sdk的初始化(第三个参数是渠道参数)//Bmob.initialize(this, "这里填你申请的Application ID","bmob");
如果想勤快点儿,就写下面这几句
//自v3.4.7版本开始,设置BmobConfig,允许设置请求超时时间、文件分片上传时每片的大小、文件的过期时间(单位为秒),BmobConfig config =new BmobConfig.Builder(this) .setApplicationId("Your Application ID")//设置appkey .setConnectTimeout(30)//请求超时时间(单位为秒):默认15s .setUploadBlockSize(1024*1024)//文件分片上传时每片的大小(单位字节),默认512*1024 .setFileExpiration(2500)//文件的过期时间(单位为秒):默认1800s .build();Bmob.initialize(config);
大功告成
恩,到这里就配置完毕了,可以愉快的增删改查了。如果出现了莫名其妙的错误,那接着往下看—
坑
恩,说个坑吧。因为Bmob集成了okhttp以及rxjava。所以有可能和原有的依赖重复。
恩,就会报如图的错误:
Error:Execution failed for task ':app:transformResourcesWithMergeJavaResForDebug'.> com.android.build.api.transform.TransformException: com.android.builder.packaging.DuplicateFileException: Duplicate files copied in APK META-INF/rxjava.properties File1: C:\Users\Administrator\.gradle\caches\modules-2\files-2.1\io.reactivex\rxjava\1.2.0\42bfaf64c94f3848ebf5cf1c2ea4ec9d1b3ac6c8\rxjava-1.2.0.jar File2: C:\Users\Administrator\.android\build-cache\b33b7e36d3fa0e8a6c71bf2352fd19ddd498aa10\output\jars\classes.jar
恩……这里就暴露了我基础不扎实的秘密。一个重复依赖的问题让我头疼了老大会儿。各种百度,还搜索不出来。(恩?只有我出现过这个问题?)
恩,最后的解决方法如下:
在module包下的build.gradle里面加上这几句代码就好了
packagingOptions { exclude 'META-INF/rxjava.properties'}
- Bmob后端云的集成以及需要注意的坑
- Bmob后端云的集成与使用
- Android使用Bmob移动后端云Restful API需要注意的问题
- Android使用Bmob移动后端云Restful API需要注意的问题
- 使用Bmob后端云遇到的坑
- Bmob后端云的使用
- Bmob后端云的基本使用
- Bmob移动后端云简单集成
- 【swift】 使用bmob后端云进行增删改查以及上传文件的部分代码
- Android实战——第三方服务之Bmob后端云的推送服务的集成和使用(三)
- 关于集成Bmob遇到的坑
- 关于Bmob后端云的jar文件的错误
- Bmob 后端云——史上最简单的登录
- Bmob 后端云——史上最简单的注册功能
- Bmob后端云与rxjava包冲突的解决方案
- 通过Bmob云后端来实现一个完整的app
- 小白入门---BMOB后端云的使用
- Bmob ---移动开发者的后端福音
- 因为缺少调试目标,vs无法调试
- 老杨聊架构:每个架构师都应该研究下康威定律
- php 微信模拟登陆 获取用户列表 群发消息
- JDBC连接oracle数据库代码
- RabbitMq
- Bmob后端云的集成以及需要注意的坑
- esc安全组配置
- 关于java的文件操作,路径表示问题
- 121. Best Time to Buy and Sell Stock (dp)
- NOIP2010普及组-数字统计
- Valid Parentheses验证有效括号对
- NOIP2008 传纸条 双线程DP
- [js高手之路] dom常用节点属性兼容性详解与应用
- 《数据库SQL实战》获取当前(to_date='9999-01-01')薪水第二多的员工的emp_no以及其对应的薪水salary