使用Bmob遇到的坑与解决办法

先说下为什么使用Bmob:

准备开发一个自己使用的小工具,直接在别人的开源代码进行的开发,这个项目只有本地数据的存储,我想加个网络存储的功能,因为之前听朋友说过Bmob,于是便选择使用它了。


坑一:依赖包出现了冲突

于是我便按照官网的文档使用Android Studio一步步添加依赖,所有都弄好了,一编译发现Bmob依赖的库与之前添加的Rxbinding依赖的Rxjava库出现了冲突,于是百度寻找解决依赖冲突的方法,最后发现了Gradle中的exclude可以设置库不添加对某个库的依赖,但是我设置了之后没有起作用,我的依赖如下:

 compile('cn.bmob.android:bmob-sdk:3.5.0') {
         exclude group: 'io.reactivex:rxandroid'
         exclude group: 'io.reactivex:rxjava'
     }
希望有知道的大牛能告诉下我为什么没起作用。

Gradle依赖参考:点击打开链接

坑二:so文件没有被引入

没办法,只能手动添加依赖库了...下载sdk把rxjava和rxAndroid之外的库全部放入libs文件夹,这时候编译倒是过了,于是便按照Bmob的文档初始化,结果又报错:

  java.lang.UnsatisfiedLinkError: No implementation found for boolean cn.bmob.v3.helper.BmobNative.init(android.content.Context, java.lang.String) 
这种初始化出现问题的一般都是库没有添加,哎,我一看libs里面.so文件都有啊,那只能是没有关联上,真是麻烦,只能继续百度之,找到一篇正确添加.so文件的文章,在gradle中添加了下面脚本成功的引入了.so文件...

task nativeLibsToJar(type: Zip, description: "create a jar archive of the native libs") {
    destinationDir file("$projectDir/libs")
    baseName "Native_Libs2"
    extension "jar"
    from fileTree(dir: "libs", include: "*****///*//*.so")
    into "lib"
}

tasks.withType(JavaCompile) {
    compileTask -> compileTask.dependsOn(nativeLibsToJar)
}
正确引入so文件参考: 点击打开链接



你可能感兴趣的:(Android)