首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Apache 3.8 beta hwpf创建和格式化NoSuchMethod文件时出现.doc异常

使用Apache 3.8 beta hwpf创建和格式化NoSuchMethod文件时出现.doc异常
EN

Stack Overflow用户
提问于 2012-04-06 12:25:36
回答 2查看 593关注 0票数 0

在尝试运行此代码时,我将得到以下异常。

java.lang.NoSuchMethodError: org.apache.poi.POIDocument.< init >

代码片段:

代码语言:javascript
复制
try {

    File file = new File(externalPath + "/abc.doc");
    POIFSFileSystem fs = new POIFSFileSystem(new FileInputStream(file));
    HWPFDocument doc = new HWPFDocument(fs);
    Range range = doc.getRange();
    CharacterRun run = range.insertAfter("Hello World!");
    run.setFontSize(2 * 18);
    run.setBold(true);
    run.setItalic(true);
    run.setCapitalized(true);
    OutputStream out = new FileOutputStream(new File(externalPath + "/agnew.doc"));
    doc.write(out);
    out.flush();
    out.close();

} catch (Exception ex) {
    Log.e("Exception==","=="+ex.toString());
      ex.printStackTrace();
}

逻辑猫:

代码语言:javascript
复制
Logcat : FATAL EXCEPTION: main : java.lang.NoSuchMethodError: org.apache.poi.POIDocument. : 
at org.apache.poi.hwpf.HWPFDocumentCore.(HWPFDocumentCore.java:145) : 
at org.apache.poi.hwpf.HWPFDocument.(HWPFDocument.java:218) : 
at org.apache.poi.hwpf.HWPFDocument.(HWPFDocument.java:186) : 
at com.vikas.prudent.CreateDocument.onCreate(CreateDocument.java:45) : 
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047) : 
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2627) : 
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2679) : 
at android.app.ActivityThread.access$2300(ActivityThread.java:125) : 
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2033) : 
at android.os.Handler.dispatchMessage(Handler.java:99) : 
at android.os.Looper.loop(Looper.java:123) : 
at android.app.ActivityThread.main(ActivityThread.java:4627) : 
at java.lang.reflect.Method.invokeNative(Native Method) : 
at java.lang.reflect.Method.invoke(Method.java:521) : 
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868) : 
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626) : 
at dalvik.system.NativeStart.main(Native Method)
EN

回答 2

Stack Overflow用户

发布于 2012-04-06 16:07:06

仅仅看一下异常,它似乎是lib版本的错误匹配。看起来HWPFDocumentCore.java:145正在尝试构建一个新的POIDocument,但是找不到需要调用的构造函数。我想看看HWPFDocumentCore.java的第145行,看看它所期望的构造函数。然后查找在POIDocument中具有这样一个构造函数的POI库。

票数 0
EN

Stack Overflow用户

发布于 2012-04-09 15:36:01

听起来您的类路径上有两个Apache副本,一个是旧的,另一个是新的。我的预感是您的HWPF jar (Scratchpad)是新的,但它正在捡起一个旧的核心POI jar,这就是为什么您要获得异常。

您需要做的是检查类路径上的所有jars,并识别与POI相关的jars,然后确保它们的集合是一致的。

POI常见问题在这个问题上,还有一些可以用来打印POI类来自哪个jar的在这个问题上代码。如果您无法直接发现错误的jar,请尝试将上面显示的代码移植到您的android代码中,以帮助您找到旧的jar。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10043458

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档