Apache POI

0

Witam mam problem już na wstępie pracy z Apache POI. Chciałem pobrać tekst z pliku doc/docx. Skożystałem z jednego z licznych tutoriali. Plik wczytuje oraz pobieram tekst w taki sposób:

XWPFDocument doc;
		try {
			doc = new XWPFDocument(new FileInputStream(path));
			XWPFWordExtractor wordxExtractor = new XWPFWordExtractor(doc);  
            Log.d("text", wordxExtractor.getText());
		} catch (FileNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}  

Ale niestety cały czas wywala mi błąd że nie widzi klasy XWPFDocument. Tak wygląda log:

12-10 1940.283: E/AndroidRuntime(1021): FATAL EXCEPTION: main
12-10 1940.283: E/AndroidRuntime(1021): java.lang.NoClassDefFoundError: org/apache/poi/xwpf/usermodel/XWPFDocument
12-10 1940.283: E/AndroidRuntime(1021): at com.example.szkolny.pomocnik.activity.MaterialKonwerter.onCreate(MaterialKonwerter.java:32)
12-10 1940.283: E/AndroidRuntime(1021): at android.app.Activity.performCreate(Activity.java:4470)
12-10 1940.283: E/AndroidRuntime(1021): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1052)
12-10 1940.283: E/AndroidRuntime(1021): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1931)
12-10 1940.283: E/AndroidRuntime(1021): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1992)
12-10 1940.283: E/AndroidRuntime(1021): at android.app.ActivityThread.access$600(ActivityThread.java:127)
12-10 1940.283: E/AndroidRuntime(1021): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1158)
12-10 1940.283: E/AndroidRuntime(1021): at android.os.Handler.dispatchMessage(Handler.java:99)
12-10 1940.283: E/AndroidRuntime(1021): at android.os.Looper.loop(Looper.java:137)
12-10 1940.283: E/AndroidRuntime(1021): at android.app.ActivityThread.main(ActivityThread.java:4511)
12-10 1940.283: E/AndroidRuntime(1021): at java.lang.reflect.Method.invokeNative(Native Method)
12-10 1940.283: E/AndroidRuntime(1021): at java.lang.reflect.Method.invoke(Method.java:511)
12-10 1940.283: E/AndroidRuntime(1021): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:980)
12-10 1940.283: E/AndroidRuntime(1021): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:747)
12-10 1940.283: E/AndroidRuntime(1021): at dalvik.system.NativeStart.main(Native Method)
12-10 1940.283: E/AndroidRuntime(1021): Caused by: java.lang.ClassNotFoundException: org.apache.poi.xwpf.usermodel.XWPFDocument
12-10 1940.283: E/AndroidRuntime(1021): at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:61)
12-10 1940.283: E/AndroidRuntime(1021): at java.lang.ClassLoader.loadClass(ClassLoader.java:501)
12-10 1940.283: E/AndroidRuntime(1021): at java.lang.ClassLoader.loadClass(ClassLoader.java:461)
12-10 1940.283: E/AndroidRuntime(1021): ... 15 more

Zaimportowane przeze mnie biblioteki to:
-poi-3.8
-poi-ooxml 3.8
-poi-scratchpad-3.8
-ooxml-schemas-1.1
-poi-examples-3.8
-openxml4j-1,0
-poi-ooxml-schemas-3.8
-xmlbeans-2.5
-dom4j-1.6
-commons-codec
-commons-logging
-stax-api-1.0

Prosze o jakąś wskazówke. Z góry dzięki.

0

Problem może istnieć w tym że źle dodaje biblioteki do projektu. Robie to standardowo Properties>Java Build Path>Add External JAR, ale dalej otrzymuje NoClassDefFoundError. Może mi dać jakąs wskazówke. Męcze sie z tym juz od dwóch dni.

0

"E/AndroidRuntime(1021)" - rozumiem, że chcesz to odpalić na Androidzie

http://stackoverflow.com/questions/8493507/trying-to-port-apache-poi-to-android
W komentarzach jest kilka linków, jak to zrobić.

0

Dzięki za odpowiedź ale tamte tutoriale są po francusku i ciężko mi dociec o co tam chodzi. I tak chce to odpalić na Androidzie.

I wchodząc na strone apache znalazłem cos takiego.

"The POI build system requires Apache Ant"

Tyle że nigdy nie korzystałem z ANTA. Ma ktoś może jakiś sprawdzony tutek jak kokoRZystaćystać z anta pod windowsem.

0

Wie ktoś może dlaczego wywala mi taki błąd?? Jest to część pliku ANTa build.xml.

<target name="resource-src" description="Generate the R.java file for this project's resources.">
                <android:aapt>
                        <arg value="package"/>
                        <arg value="-m"/>
                        <arg value="-J"/>
                        <arg file="src"/> <!-- Create R.java in the source directory -->
                        <arg value="-M"/>
                        <arg file="AndroidManifest.xml"/>
                        <arg value="-S"/>
                        <arg file="res"/>
                        <arg value="-I"/>
                        <arg file="${android-home}/android.jar"/>
                </android:aapt>
        </target>

BUILD FAILED
C:\Users\Tomek\workspace\SchoolHelp\build.xml The prefix "android" for element "android:aapt" is not bound.

1 użytkowników online, w tym zalogowanych: 0, gości: 1