FBReaderJ的详细集成步骤(Andorid)
附上其github地址:https://github.com/geometer/FBReaderJ
再附上AS版本地址:https://github.com/adolfAn/FBReader_AS
FBReaderJ是一款强大稳定的第三方阅读器,虽然强大,但是集成起来并不简单,话不多说,直接开始集成。
- 下载AS版本的FBReader,直接在你的项目中将FBReader_AS-master导入moudle
-
会有四个moudle:ambilWarna、superToasts、code、fBReader;fBReader其实是一个项目,其他三个是它的依赖,这时候就要将fBReader和你的项目合并在一起了,这个过程会出现一些坑:
- 先将fBreader中的res、aidl、assets、jniLibl拷到自己的项目中的,我的是 app/src/main/
- 然后是项目中的libs拷过去,记住要add as library
- 再就是清单文件,全部拷到自己的清单文件中,记住把它的主启动项改掉,不然会冲突
- 把它的res中的所有文件拷到你的res中
- 接着就要改错了,各种R文件找不到,你Res文件都拷过来了,一些布局控件还是原来的引用,当然找不到,一键替换成自己的R文件路径
-
这是粘贴复制的工作结束了,下面我们来填坑
报这个类找不到 ,在网上下两个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再强转
直接注释掉,这是通知栏的设置
上面我们已经把坑踩的差不多了,下面接着集成:
- 自定义的Application必须继承FBReaderApplication,其中会涉及到启动相应的服务类
- 调用FBReader类之前我们还需要做一步,将src\main\java\org\geometerplus\android\fbreader\api\FBReaderIntents.class中的DEFAULT_PACKAGE 常量改为自己的项目的包名
- 最后我们就可以愉快的调用fbreader,通过uri将书传过去就行了。