Epub文件解析库-- Epublib

介绍

epublib是一个比较强大的Epub 文件解析库,同时也支持Epub文件的生成,本篇文章会对其做一个详细的介绍。

相关资料

    repositories {
        maven {
            url 'https://github.com/psiegman/mvn-repo/raw/master/releases'
        }
    }
    dependencies {
        implementation('nl.siegmann.epublib:epublib-core:3.1') {
            exclude group: 'org.slf4j'
            exclude group: 'xmlpull'
        }
        implementation 'org.slf4j:slf4j-android:1.7.25'
    }

其中有一个基于EpubLib的开源项目:PageTurner,不过他是基于Eclipse开发的,如果你是AS的话,导入过程可能会存在一些错误。我在导入的过程中踩了一些坑,相关的问题和解决方案记录如下:

错误: AGPBI: {“kind”:“error”,“text”:“error: resource android:attr/popupPromptView is private.”,“sources”:[{“file”:


原因:
这个问题是因为项目中引入ActionBarSherlock导致的。

  1. 网上一般的处理办法是调低编译工具版本,至少降到Android-19;
    注: 但我尝试处理时,仍然不可行。
  2. 去ActionBarSherlock的官网下载源码包,删除Gradle中对ActionBarSherlock的依赖。直接将ActionBarSherlock源码(下载地址)及res放入项目里面(下载地址),如果有R资源找不到的情况还要改下R前面的包名,然后继续编译即可。ActionBarSherlock已经很久没人维护了。

错误: 程序包org.apache.http不存在


原因: Android 6.0(api 23)及以上已经不支持HttpClient了

  1. 如果想要使用的话,一般的答案都是需要在build.gradle中 加入useLibrary 'org.apache.http.legacy'就可以了,如下图,但是我加完之后再次编译,项目还是报错,所以还是乖乖将compileSdkVersion切回了19。
    在这里插入图片描述

问题: 项目sync一直很久都没能完成


解决方案: 尝试注释掉下面这一行,原因未知,但sync速度可以提升很多。

//maven { url 'http://acra.googlecode.com/svn/repository/releases' }

错误: ERROR: Cannot add a configuration with name ‘testCompile’ as a configuration with that name already exists.


原因: 跟robolectric相关的错误,都可以先直接注释掉robolectric,项目里面可以不用到。

错误: ERROR: Plugin with id ‘sonar-runner’ not found.


原因: sonar-runner’也可以不用到,直接干掉

其他:
1、testLocal相关的错误,直接去掉;
2、gradle的配置我用的是,可以参考:

	//build.gradle的修改
classpath 'com.android.tools.build:gradle:3.1.4'
	//gradle-wrapper.propperties 的修改
distributionUrl=https\://services.gradle.org/distributions/gradle-4.10.1-all.zip
	//repositories下面增加如下配置
maven { url 'https://maven.google.com' }
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在Android项目中使用EPUBLib,可以按照以下步骤进行: 1. 下载EPUBLib,并将其解压缩到本地目录中。 2. 在Android Studio中创建一个新项目,并将解压缩后的EPUBLib添加为一个模块。 在Android Studio的File菜单中选择New > New Module,然后选择Import Gradle Project选项。在弹出的对话框中选择EPUBLib所在的目录,然后点击Finish按钮。这将把EPUBLib作为一个模块添加到当前的Android项目中。 3. 在app模块的build.gradle文件中添加对EPUBLib的依赖。 在app模块的build.gradle文件中添加以下代码: ```groovy dependencies { implementation project(':epublib') } ``` 4. 在AndroidManifest.xml文件中添加对文件读写权限的声明。 EPUBLib需要访问Android设备上的文件系统,因此需要在AndroidManifest.xml文件中添加对文件读写权限的声明。在<manifest>标签中添加以下权限声明: ```xml <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> ``` 5. 在代码中使用EPUBLib。 在代码中使用EPUBLib的类和方法,需要先导入相关的包。例如,要使用EPUBFileFactory类来创建EPUBFile对象,可以在代码中添加以下导入语句: ```java import nl.siegmann.epublib.domain.Book; import nl.siegmann.epublib.epub.EpubReader; ``` 然后就可以在代码中使用EPUBLib提供的类和方法了。例如,可以使用EpubReader类来读取EPUB电子书文件,并将其转换为Book对象: ```java File epubFile = new File("/sdcard/mybook.epub"); EpubReader epubReader = new EpubReader(); Book book = epubReader.readEpub(new FileInputStream(epubFile)); ``` 以上步骤仅供参考,具体实现需要根据项目的需求进行修改。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值