Android项目提取DOCX元数据时依赖引入失败求助
解决Android提取DOCX元数据的依赖问题
一、修复Apache Tika构建失败问题
1. 解决依赖解析失败
确保项目根目录的settings.gradle(Android Studio Arctic Fox及以上版本)或build.gradle中配置了MavenCentral仓库:
// settings.gradle dependencyResolutionManagement { repositories { google() mavenCentral() } }
2. 解决类文件主版本63不兼容问题
类文件主版本63对应Java 19,Android Gradle插件默认编译版本通常低于此,可在app模块的build.gradle中提升编译版本:
android { compileOptions { sourceCompatibility JavaVersion.VERSION_19 targetCompatibility JavaVersion.VERSION_19 } // 若使用Kotlin,补充以下配置 kotlinOptions { jvmTarget = "19" } }
如果不想升级Java版本,可降级Tika到兼容低版本Java的稳定版,比如2.4.1(依赖的jackson-core为2.13.x,对应Java 17,主版本61,多数Android环境支持):
implementation 'org.apache.tika:tika-core:2.4.1' implementation 'org.apache.tika:tika-parsers-standard-package:2.4.1'
3. 轻量化替代方案
Tika的standard-package包含大量非必要解析器,若仅需处理DOCX,可只引入OOXML模块依赖,减少体积:
implementation 'org.apache.tika:tika-core:2.8.0' implementation 'org.apache.tika:tika-parser-ooxml-module:2.8.0'
二、修复GroupDocs Parser依赖找不到问题
GroupDocs Parser的官方依赖不在Maven中央仓库,需添加其私有仓库到项目配置:
在根目录settings.gradle中添加:
dependencyResolutionManagement { repositories { // 保留原有仓库 maven { url "https://repository.groupdocs.com/repo/" } } }
之后再引入依赖即可:
implementation 'com.groupdocs:groupdocs-parser:23.2'
三、额外推荐:使用POI直接处理DOCX元数据
若仅需提取DOCX元数据,Apache POI的OOXML模块更轻量化,无兼容性问题:
implementation 'org.apache.poi:poi-ooxml:5.2.5'
提取元数据示例代码:
import org.apache.poi.xwpf.usermodel.XWPFDocument; import org.apache.poi.ooxml.POIXMLProperties; import java.io.FileInputStream; // 读取DOCX文件 XWPFDocument doc = new XWPFDocument(new FileInputStream("your_file.docx")); POIXMLProperties properties = doc.getProperties(); // 获取核心元数据 POIXMLProperties.CoreProperties coreProps = properties.getCoreProperties(); String title = coreProps.getTitle(); String author = coreProps.getCreator(); String subject = coreProps.getSubject(); // 获取扩展元数据 POIXMLProperties.ExtendedProperties extProps = properties.getExtendedProperties(); long wordCount = extProps.getUnderlyingProperties().getWords();
内容的提问来源于stack exchange,提问作者user21978083
相关产品推荐
相关产品推荐

