FBReaderJ的详细集成步骤(Andorid)

附上其github地址:https://github.com/geometer/FBReaderJ

再附上AS版本地址:https://github.com/adolfAn/FBReader_AS

FBReaderJ是一款强大稳定的第三方阅读器,虽然强大,但是集成起来并不简单,话不多说,直接开始集成。

  1. 下载AS版本的FBReader,直接在你的项目中将FBReader_AS-master导入moudle
  2. 会有四个moudle:ambilWarna、superToasts、code、fBReader;fBReader其实是一个项目,其他三个是它的依赖,这时候就要将fBReader和你的项目合并在一起了,这个过程会出现一些坑:

    • 先将fBreader中的res、aidl、assets、jniLibl拷到自己的项目中的,我的是 app/src/main/
    • 然后是项目中的libs拷过去,记住要add as library
    • 再就是清单文件,全部拷到自己的清单文件中,记住把它的主启动项改掉,不然会冲突
    • 把它的res中的所有文件拷到你的res中
    • 接着就要改错了,各种R文件找不到,你Res文件都拷过来了,一些布局控件还是原来的引用,当然找不到,一键替换成自己的R文件路径
    • 这是粘贴复制的工作结束了,下面我们来填坑

      • FBReaderJ的详细集成步骤(Andorid)_第1张图片
        报这个类找不到 ,在网上下两个jar包导到libs中httpclient-4.5.2.jar和httpcore-4.4.4.jar

      • 冲突导进来会有冲突,因为这几个jar之间有相同的类,我们只要在gradle中加上几行代码就行了:
        packagingOptions {
        exclude ‘META-INF/DEPENDENCIES’
        exclude ‘META-INF/NOTICE’
        exclude ‘META-INF/LICENSE’
        }

      • 这里写图片描述
        直接将floatMath改成Math再强转

      • FBReaderJ的详细集成步骤(Andorid)_第2张图片
        直接注释掉,这是通知栏的设置

  3. 上面我们已经把坑踩的差不多了,下面接着集成:

  4. 自定义的Application必须继承FBReaderApplication,其中会涉及到启动相应的服务类
  5. 调用FBReader类之前我们还需要做一步,将src\main\java\org\geometerplus\android\fbreader\api\FBReaderIntents.class中的DEFAULT_PACKAGE 常量改为自己的项目的包名
  6. 最后我们就可以愉快的调用fbreader,通过uri将书传过去就行了。

我们制作阅读器,直接使用FBReader往往不符合我我们的需求,需要自己定制UI和功能,这时候,就需要你去读它的源码,再附一遍Fbreader的源码解析:http://www.jianshu.com/p/cf8d87d71708

你可能感兴趣的:(项目)