Вызывается java.lang.NoSuchMethodException <init>[класс com.itextpdf.text.Image] - PullRequest
0 голосов
/ 16 февраля 2019

Caused by java.lang.NoSuchMethodException: <init> [class com.itextpdf.text.Image]
       at java.lang.Class.getConstructor0(Class.java:2320)
       at java.lang.Class.getDeclaredConstructor(Class.java:2166)
       at com.itextpdf.text.Image.getInstance(Unknown Source:16)
       at com.itextpdf.text.pdf.PdfPCell.(Unknown Source:124)
       at com.itextpdf.text.pdf.PdfPTable.addCell(Unknown Source:17)
       at com.itextpdf.text.pdf.ColumnText.addElement(Unknown Source:109)
       at com.itextpdf.text.pdf.PdfPCell.addElement(Unknown Source:63)
       at com.clystnet.wcr.wcrinternal.activitys.RaamsFormViewActivity$creatingPdf.doInBackground(Unknown Source:590)
       at com.clystnet.wcr.wcrinternal.activitys.RaamsFormViewActivity$creatingPdf.doInBackground(Unknown Source:2)
       at android.os.AsyncTask$2.call(AsyncTask.java:333)
       at java.util.concurrent.FutureTask.run(FutureTask.java:266)
Caused by com.itextpdf.text.ExceptionConverter: <init> [class com.itextpdf.text.Image]

Приложение выходит из строя в версии выпуска, когда я устанавливаю изображение в crashlytics, тоже не отображается ошибка ни в одной строке.Пожалуйста, помогите мне с этим.

    implementation 'com.itextpdf:itextpdf:5.5.13'

Мой код для добавления изображения из Drawable.

 Drawable d = getResources().getDrawable(R.drawable.wcr_logo);
                BitmapDrawable bitDw = ((BitmapDrawable) d);
                Bitmap bmp = bitDw.getBitmap();
                Image logo = null;
                if (bmp != null) {
                    ByteArrayOutputStream stream = new ByteArrayOutputStream();
                    bmp.compress(Bitmap.CompressFormat.PNG, 100, stream);
                    if (stream != null) {
                        if (stream.size() > 0) {
                            Log.d("zcusfs","reached here2");
                            logo = Image.getInstance(stream.toByteArray(),true);
                            Log.d("zcusfs","reached here2c");
                            logo.scaleAbsolute(40, 40);
                            logo.setBorder(Image.NO_BORDER);
                        }
                    }
                }

                //Image logo = Image.getInstance(HeaderFooterPageEvent.class.getResource("/ic_launcher.png"));
                PdfPCell img = new PdfPCell();
                img.addElement(logo);
                img.setBorder(Rectangle.NO_BORDER);

Ответы [ 2 ]

0 голосов
/ 23 августа 2019

Добавьте следующий текст в ваш файл ProGuard

# proguard configuration for iText

-keep class org.spongycastle.** { *; }
-dontwarn org.spongycastle.**

-keep class com.itextpdf.** { *; }

-keep class javax.xml.crypto.dsig.** { *; }
-dontwarn javax.xml.crypto.dsig.**

-keep class org.apache.jcp.xml.dsig.internal.dom.** { *; }
-dontwarn org.apache.jcp.xml.dsig.internal.dom.**

-keep class javax.xml.crypto.dom.** { *; }
-dontwarn javax.xml.crypto.dom.**

-keep class org.apache.xml.security.utils.** { *; }
-dontwarn org.apache.xml.security.utils.**

-keep class javax.xml.crypto.XMLStructure
-dontwarn javax.xml.crypto.XMLStructure
0 голосов
/ 23 августа 2019

В моем случае это было связано с тем, что я включил Progaurd с "minifyEnabled true".Просто изменил его на «minifyEnabled false» и удалил «shrinkResources true».

В build.gradle (уровень приложения)

buildTypes {
        release {
            minifyEnabled false
            debuggable false
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
        }
        debug {
            debuggable true
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
        }
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...