0

The Libraries I'm using:

    implementation group: 'org.apache.poi', name: 'poi-ooxml', version: '3.17'
    implementation group: 'org.apache.xmlbeans', name: 'xmlbeans', version: '3.1.0'
    implementation 'javax.xml.stream:stax-api:1.0'
    implementation 'com.fasterxml:aalto-xml:1.2.2'

The Code: "Slide.createTable() is generating Exception here."

XMLSlideShow ppt = new XMLSlideShow();

        XSLFSlide slide = ppt.createSlide();

        XSLFTable tbl = slide.createTable();

        int numColumns = 2;
        XSLFTableRow headerRow = tbl.addRow();
        headerRow.setHeight(50);

        for (int i = 0; i < numColumns; i++) {
            XSLFTableCell th = headerRow.addCell();

            XSLFTextParagraph p = th.addNewTextParagraph();
            p.setTextAlign(TextParagraph.TextAlign.CENTER);

            XSLFTextRun r = p.addNewTextRun();
            r.setText("Header " + (i + 1));

            tbl.setColumnWidth(i, 150);
        }

The Exception:

java.lang.NoClassDefFoundError: Failed resolution of: Ljava/awt/geom/Rectangle2D$Double;
        at org.apache.poi.xslf.usermodel.XSLFDrawing.createTable(XSLFDrawing.java:110)
        at org.apache.poi.xslf.usermodel.XSLFSheet.createTable(XSLFSheet.java:268)
        at com.buzzware.advancesmarttech.Activities.MainActivity.generatePPT(MainActivity.java:87)
        at com.buzzware.advancesmarttech.Activities.MainActivity.access$100(MainActivity.java:66)
        at com.buzzware.advancesmarttech.Activities.MainActivity$1.onPermissionsChecked(MainActivity.java:268)
        at com.karumi.dexter.DexterInstance$1.run(Unknown Source:43)
        at com.karumi.dexter.MainThread.execute(Unknown Source:6)
        at com.karumi.dexter.DexterInstance.checkMultiplePermissions(Unknown Source:71)
        at com.karumi.dexter.DexterInstance.checkPermissions(Unknown Source:0)
        at com.karumi.dexter.Dexter.check(Unknown Source:10)
        at com.buzzware.advancesmarttech.Activities.MainActivity.lambda$setListeners$13$MainActivity(MainActivity.java:277)
        at com.buzzware.advancesmarttech.Activities.-$$Lambda$MainActivity$mkk0fmTMcZARJR0wJDGcWNrEebE.onClick(Unknown Source:2)
        at android.view.View.performClick(View.java:6291)
        at android.view.View$PerformClick.run(View.java:24931)
        at android.os.Handler.handleCallback(Handler.java:808)
        at android.os.Handler.dispatchMessage(Handler.java:101)
        at android.os.Looper.loop(Looper.java:166)
        at android.app.ActivityThread.main(ActivityThread.java:7529)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:245)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:921)

If I change or upgrade libraries then it shows multidex-class exception or some namespace exception. So, can't change the libraries.

  • 1
    This is due an incompleteness of `android`. It completely lacks `java.awt`. See https://stackoverflow.com/questions/6344654/how-to-add-java-awt-image-package-in-android#:~:text=The%20Java%20AWT%20classes%20contain%20native%20code%2C%20so,above%2C%20Android%20has%20its%20own%20graphics%20libraries%20%28android.graphics%29.. And since `apache poi` partially relies on `java.awt` it is not possible to use those parts of `apache poi` on `android` then. – Axel Richter Nov 05 '21 at 04:35

0 Answers0