Unable to compile apk, Itext and Proguard conflict
I am developing an Android application, now I need to build an APK, for that I follow this step:
1) Build -> Clean
2) Build -> Generated Signed APK
3) Signature Jar or Full Signature APK
But when generating the application, an error occurs:
Information:Gradle tasks [:app:assembleRelease]
Warning:com.itextpdf.text.pdf.PdfEncryptor: can't find referenced class org.spongycastle.cms.jcajce.JceKeyTransEnvelopedRecipient
Warning:com.itextpdf.text.pdf.PdfEncryptor: can't find referenced class org.spongycastle.cms.RecipientInformation
Warning:com.itextpdf.text.pdf.PdfEncryptor: can't find referenced class org.spongycastle.cms.CMSException
Warning:com.itextpdf.text.pdf.PdfEncryptor: can't find referenced class org.spongycastle.cms.RecipientInformation
Warning:com.itextpdf.text.pdf.PdfEncryptor: can't find referenced class org.spongycastle.cms.Recipient
Warning:com.itextpdf.text.pdf.PdfPublicKeySecurityHandler: can't find referenced class org.spongycastle.asn1.DEROutputStream
Warning:com.itextpdf.text.pdf.PdfPublicKeySecurityHandler: can't find referenced class org.spongycastle.asn1.ASN1InputStream
Warning:com.itextpdf.text.pdf.PdfPublicKeySecurityHandler: can't find referenced class org.spongycastle.asn1.DEROctetString
Warning:com.itextpdf.text.pdf.PdfPublicKeySecurityHandler: can't find referenced class org.spongycastle.asn1.DERSet
Warning:com.itextpdf.text.pdf.PdfPublicKeySecurityHandler: can't find referenced class org.spongycastle.asn1.cms.RecipientInfo
Warning:com.itextpdf.text.pdf.PdfPublicKeySecurityHandler: can't find referenced class org.spongycastle.asn1.DERSet
Warning:com.itextpdf.text.pdf.PdfPublicKeySecurityHandler: can't find referenced class org.spongycastle.asn1.x509.AlgorithmIdentifier
Warning:com.itextpdf.text.pdf.PdfPublicKeySecurityHandler: can't find referenced class org.spongycastle.asn1.ASN1ObjectIdentifier
Warning:com.itextpdf.text.pdf.PdfPublicKeySecurityHandler: can't find referenced class org.spongycastle.asn1.x509.AlgorithmIdentifier
Warning:com.itextpdf.text.pdf.PdfPublicKeySecurityHandler: can't find referenced class org.spongycastle.asn1.cms.EncryptedContentInfo
Warning:com.itextpdf.text.pdf.security.PdfPKCS7: can't find referenced class org.spongycastle.asn1.tsp.MessageImprint
Warning:com.itextpdf.text.pdf.security.PdfPKCS7: can't find referenced class org.spongycastle.asn1.ASN1Sequence
Warning:com.itextpdf.text.pdf.security.PdfPKCS7: can't find referenced class org.spongycastle.cert.ocsp.BasicOCSPResp
Warning:com.itextpdf.text.pdf.security.PdfPKCS7: can't find referenced class org.spongycastle.cert.ocsp.SingleResp
Warning:com.itextpdf.text.pdf.security.PdfPKCS7: can't find referenced class org.spongycastle.cert.ocsp.CertificateID
Warning:com.itextpdf.text.pdf.security.PdfPKCS7: can't find referenced class org.spongycastle.operator.DigestCalculator
Warning:com.itextpdf.text.pdf.security.PdfPKCS7: can't find referenced class org.spongycastle.cert.ocsp.CertificateID
Warning:com.itextpdf.text.pdf.security.PdfPKCS7: can't find referenced class org.spongycastle.asn1.ASN1Sequence
Warning:com.itextpdf.text.pdf.security.PdfPKCS7: can't find referenced class org.spongycastle.asn1.ASN1TaggedObject
Warning:com.itextpdf.text.pdf.security.PdfPKCS7: can't find referenced class org.spongycastle.asn1.ASN1Sequence
Warning:com.itextpdf.text.pdf.security.PdfPKCS7: can't find referenced class org.spongycastle.asn1.ASN1OctetString
Warning:com.itextpdf.text.pdf.security.PdfPKCS7: can't find referenced class org.spongycastle.asn1.ASN1InputStream
Warning:com.itextpdf.text.pdf.security.PdfPKCS7: can't find referenced class org.spongycastle.asn1.ocsp.BasicOCSPResponse
Warning:com.itextpdf.text.pdf.security.PdfPKCS7: can't find referenced class org.spongycastle.tsp.TimeStampToken
Warning:com.itextpdf.text.pdf.security.SignaturePolicyInfo: can't find referenced class org.spongycastle.asn1.esf.SigPolicyQualifierInfo
Warning:com.itextpdf.text.pdf.security.SignaturePolicyInfo: can't find referenced class org.spongycastle.asn1.pkcs.PKCSObjectIdentifiers
Warning:com.itextpdf.text.pdf.security.SignaturePolicyInfo: can't find referenced class org.spongycastle.asn1.DERIA5String
Warning:com.itextpdf.text.pdf.security.SignaturePolicyInfo: can't find referenced class org.spongycastle.asn1.esf.SigPolicyQualifierInfo
Warning:com.itextpdf.text.pdf.security.SignaturePolicyInfo: can't find referenced class org.spongycastle.asn1.esf.SigPolicyQualifiers
Warning:com.itextpdf.text.pdf.security.SignaturePolicyInfo: can't find referenced class org.spongycastle.asn1.esf.SignaturePolicyIdentifier
Warning:com.itextpdf.text.pdf.security.SignaturePolicyInfo: can't find referenced class org.spongycastle.asn1.esf.SignaturePolicyId
Warning:com.itextpdf.text.pdf.security.SignaturePolicyInfo: can't find referenced class org.spongycastle.asn1.DERObjectIdentifier
Warning:com.itextpdf.text.pdf.security.SignaturePolicyInfo: can't find referenced class org.spongycastle.asn1.esf.OtherHashAlgAndValue
Warning:com.itextpdf.text.pdf.security.SignaturePolicyInfo: can't find referenced class org.spongycastle.asn1.x509.AlgorithmIdentifier
Warning:com.itextpdf.text.pdf.security.SignaturePolicyInfo: can't find referenced class org.spongycastle.asn1.DEROctetString
Warning:com.itextpdf.text.pdf.security.SignaturePolicyInfo: can't find referenced class org.spongycastle.asn1.esf.OtherHashAlgAndValue
Warning:com.itextpdf.text.pdf.security.SignaturePolicyInfo: can't find referenced class org.spongycastle.asn1.esf.SignaturePolicyId
Warning:com.itextpdf.text.pdf.security.SignaturePolicyInfo: can't find referenced class org.spongycastle.asn1.esf.SignaturePolicyIdentifier
Warning:com.itextpdf.text.pdf.security.SignaturePolicyInfo: can't find referenced class org.spongycastle.asn1.pkcs.PKCSObjectIdentifiers
Warning:com.itextpdf.text.pdf.security.SignaturePolicyInfo: can't find referenced class org.spongycastle.asn1.esf.SignaturePolicyIdentifier
Warning:com.itextpdf.text.pdf.security.SignaturePolicyInfo: can't find referenced class org.spongycastle.asn1.esf.SigPolicyQualifierInfo
Warning:com.itextpdf.text.pdf.security.SignaturePolicyInfo: can't find referenced class org.spongycastle.asn1.esf.SigPolicyQualifiers
Warning:com.itextpdf.text.pdf.security.TSAClientBouncyCastle: can't find referenced class org.spongycastle.tsp.TimeStampRequestGenerator
Warning:com.itextpdf.text.pdf.security.TSAClientBouncyCastle: can't find referenced class org.spongycastle.asn1.ASN1ObjectIdentifier
Warning:com.itextpdf.text.pdf.security.TSAClientBouncyCastle: can't find referenced class org.spongycastle.tsp.TimeStampRequestGenerator
Warning:com.itextpdf.text.pdf.security.TSAClientBouncyCastle: can't find referenced class org.spongycastle.tsp.TimeStampRequest
Warning:com.itextpdf.text.pdf.security.TSAClientBouncyCastle: can't find referenced class org.spongycastle.tsp.TimeStampResponse
Warning:com.itextpdf.text.pdf.security.TSAClientBouncyCastle: can't find referenced class org.spongycastle.asn1.cmp.PKIFailureInfo
Warning:com.itextpdf.text.pdf.security.TSAClientBouncyCastle: can't find referenced class org.spongycastle.tsp.TimeStampResponse
Warning:com.itextpdf.text.pdf.security.TSAClientBouncyCastle: can't find referenced class org.spongycastle.tsp.TimeStampToken
Warning:com.itextpdf.text.pdf.security.TSAClientBouncyCastle: can't find referenced class org.spongycastle.tsp.TimeStampTokenInfo
Warning:com.itextpdf.text.pdf.security.TSAClientBouncyCastle: can't find referenced class org.spongycastle.tsp.TSPException
Warning:com.itextpdf.text.pdf.security.TSAClientBouncyCastle: can't find referenced class org.spongycastle.tsp.TimeStampRequest
Warning:com.itextpdf.text.pdf.security.TSAClientBouncyCastle: can't find referenced class org.spongycastle.asn1.cmp.PKIFailureInfo
Warning:com.itextpdf.text.pdf.security.TSAClientBouncyCastle: can't find referenced class org.spongycastle.tsp.TimeStampToken
Warning:com.itextpdf.text.pdf.security.TSAClientBouncyCastle: can't find referenced class org.spongycastle.tsp.TimeStampTokenInfo
Warning:com.itextpdf.text.pdf.security.TSAClientBouncyCastle: can't find referenced class org.spongycastle.tsp.TimeStampRequestGenerator
Warning:com.itextpdf.text.pdf.security.TSAClientBouncyCastle: can't find referenced class org.spongycastle.tsp.TimeStampRequest
Warning:com.itextpdf.text.pdf.security.TSAClientBouncyCastle: can't find referenced class org.spongycastle.tsp.TimeStampResponse
Warning:com.itextpdf.text.pdf.security.TSAClientBouncyCastle: can't find referenced class org.spongycastle.asn1.cmp.PKIFailureInfo
Warning:com.itextpdf.text.pdf.security.TSAClientBouncyCastle: can't find referenced class org.spongycastle.tsp.TimeStampToken
Warning:com.itextpdf.text.pdf.security.TSAClientBouncyCastle: can't find referenced class org.spongycastle.tsp.TimeStampTokenInfo
Warning:com.itextpdf.text.pdf.security.TSAInfoBouncyCastle: can't find referenced class org.spongycastle.tsp.TimeStampTokenInfo
Warning:org.joda.convert.AbstractTypeStringConverter: can't find referenced class com.google.common.collect.ImmutableMap
Warning:org.joda.convert.AbstractTypeStringConverter: can't find referenced class com.google.common.collect.ImmutableMap$Builder
Warning:org.joda.convert.AbstractTypeStringConverter: can't find referenced class com.google.common.collect.ImmutableMap
Warning:org.joda.convert.AbstractTypeStringConverter: can't find referenced class com.google.common.collect.ImmutableMap$Builder
Warning:org.joda.convert.AbstractTypeStringConverter: can't find referenced class com.google.common.collect.ImmutableMap
Warning:org.joda.convert.TypeStringConverter: can't find referenced class com.google.common.reflect.TypeToken
Warning:org.joda.convert.TypeTokenStringConverter: can't find referenced class com.google.common.reflect.TypeToken
Warning:there were 823 unresolved references to classes or interfaces.
Warning:Exception while processing task java.io.IOException: Please correct the above warnings first.
Error:Execution failed for task ':app:transformClassesAndResourcesWithProguardForRelease'.
> Job failed, see logs for details
Information:BUILD FAILED
I don't know how to fix this problem.
What have I tried?
I put this code in my proguard-android file (located at \ AppData \ Local \ Android \ sdk \ tools \ proguard).
-keep class org.spongycastle.** { *; }
-dontwarn org.spongycastle.**
This solution does not work for me, the problem remains the same
**** CURRENT SOLUTION ****
Actually the only solution I found is set to this value in gradle:
1) shrinkResources false
2) minifyEnabled false
source to share
If you keep all the classes iText
, what is the use of Proguard ?
If you look closely, you can see that all warnings contain a package com.itextpdf.text.pdf
, so we just keep that. And also org.joda.convert
. So we have:
-keep class com.itextpdf.text.pdf.** {*;}
-dontwarn com.itextpdf.text.pdf.**
-keep class org.joda.convert.** {*;}
-dont warn org.joda.convert.**
source to share