FinalTeam / RxGalleryFinal

图片选择库,单选/多选、拍照、裁剪、压缩,自定义。包括视频选择和录制。
https://github.com/FinalTeam/RxGalleryFinal
2.83k stars 513 forks source link

Rxjava2支持 #99

Open jarmywang opened 7 years ago

jarmywang commented 7 years ago

FinalTeam你们好,感谢你们做出这么好的库,我在使用的时候,如下导入:

compile 'cn.finalteam.rxgalleryfinal:library:0.0.9'

会自动随之导入rxjava1.1.9 、rxandroid1.2.1,而我项目里用的是rxjava:2.0.7、rxandroid:2.0.1,这样就会在External Libraries里有两个版本的rxjava,导致编译出错: Error:java.lang.RuntimeException: com.android.build.api.transform.TransformException: com.android.builder.packaging.DuplicateFileException: Duplicate files copied in APK META-INF/rxjava.properties Error:com.android.build.api.transform.TransformException: com.android.builder.packaging.DuplicateFileException: Duplicate files copied in APK META-INF/rxjava.properties Error:com.android.builder.packaging.DuplicateFileException: Duplicate files copied in APK META-INF/rxjava.properties

你们的库非常优秀,不想因此替换别的,请问这个问题如何解决?

7449 commented 7 years ago

想同时使用1和2这样弄:

  android {
        packagingOptions {
        exclude 'META-INF/rxjava.properties'
   }
}

这个只是排除掉RxGalleryFinal的RxJava依赖包,经过楼下提醒还需要自行依赖1版本

     compile("cn.finalteam.rxgalleryfinal:library:$rxgalleryVersion", {
             exclude group: 'com.android.support'
             exclude group: 'io.reactivex'
             exclude group: 'rx.android'
      })
39251474 commented 7 years ago

Rxjava 2.0和1.0不兼容,命名改动很大

sheep0704 commented 7 years ago

已get,改动太大,最近工作也比较忙,有时间会全部替换

himon commented 7 years ago

@7449 exclude 后会报这个错误,RxJava2没有Subscriber了。 Error:(92, 28) 错误: 无法访问Subscriber 找不到rx.Subscriber的类文件 这个能解决吗?

7449 commented 7 years ago

@himon

RxJava2相比RxJava,Api有变化

    Disposable disposable = observable
            .subscribeOn(Schedulers.io())
            .observeOn(AndroidSchedulers.mainThread())
            .subscribeWith(new DisposableObserver<M>() {

                @Override
                public void onError(Throwable e) {
                }

                @Override
                public void onComplete() {
                }

                @Override
                public void onNext(M m) {
                }
            });
himon commented 7 years ago

@7449 那就是说用不了是吗?

7449 commented 7 years ago

@himon 你如果想用RxJava2,先去官网或者用搜索引擎搜索相关内容看下API变动以及命名修改

himon commented 7 years ago

@7449 现在是因为RxBusResultSubscriber继承了Subscriber,所以报找不到rx.Subscriber的类文件,这些都是library中的类,就算知道了RxJava2的api变动,不改动library源码也是不行的吧

7449 commented 7 years ago

@himon

   android {
          packagingOptions {
          exclude 'META-INF/rxjava.properties'
         }
   }

排除掉这个警告就可以同时使用1和2了;这个就不用在compile再排除了

chaimingkun commented 7 years ago

我们也是遇到同样的问题,很优秀的库,但是临时只能放弃,先给你们点个赞

KarelGT commented 7 years ago

同求RxJava2版本的,这样量级的库应该要支持RxJava2