介绍
epublib是一个比较强大的Epub 文件解析库,同时也支持Epub文件的生成,本篇文章会对其做一个详细的介绍。
相关资料
- 项目地址
https://github.com/psiegman/epublib - 官方api文档
http://www.siegmann.nl/static/epublib/apidocs/ - 官网
http://www.siegmann.nl/epublib - 使用方式
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导致的。
- 网上一般的处理办法是调低编译工具版本,至少降到Android-19;
注: 但我尝试处理时,仍然不可行。 - 去ActionBarSherlock的官网下载源码包,删除Gradle中对ActionBarSherlock的依赖。直接将ActionBarSherlock源码(下载地址)及res放入项目里面(下载地址),如果有R资源找不到的情况还要改下R前面的包名,然后继续编译即可。ActionBarSherlock已经很久没人维护了。
错误: 程序包org.apache.http不存在
原因: Android 6.0(api 23)及以上已经不支持HttpClient了
- 如果想要使用的话,一般的答案都是需要在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' }