2017-06-29 5 views
1

Je reçois une erreur lorsque j'essaie d'utiliser iText pour générer un fichier PDF lors de l'exécution. L'erreur survient lorsque l'application est exécutée dans l'appareil ou le mouvement de génies.transformer.TransformException dans Android

Error:Execution failed for task ':app:transformClassesWithJarMergingForDebug'. 
com.android.build.api.transform.TransformException: java.util.zip.ZipException: duplicate entry: com/lowagie/bc/asn1/ASN1Encodable.class. 

Mon code Gradle est:

apply plugin: 'com.android.application' 

android { 
    compileSdkVersion 25 
    buildToolsVersion "25.0.1" 
    useLibrary 'org.apache.http.legacy' 
    defaultConfig { 
     applicationId "com.visioneering.tfd" 
     minSdkVersion 15 
     targetSdkVersion 24 
     versionCode 5 
     versionName "1.5" 
     multiDexEnabled true 

    } 
    buildTypes { 
     release { 
      minifyEnabled false 
      proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 
     } 
    } 

    dexOptions { 
     preDexLibraries = false 
     javaMaxHeapSize "4g" 
    } 
    android { 
     lintOptions { 
      checkReleaseBuilds false 
     } 
    } 
    packagingOptions { 
     exclude 'META-INF/DEPENDENCIES.txt' 
     exclude 'META-INF/LICENSE.txt' 
     exclude 'META-INF/NOTICE.txt' 
     exclude 'META-INF/NOTICE' 
     exclude 'META-INF/LICENSE' 
     exclude 'META-INF/DEPENDENCIES' 
     exclude 'META-INF/notice.txt' 
     exclude 'META-INF/license.txt' 
     exclude 'META-INF/dependencies.txt' 
     exclude 'META-INF/LGPL2.1' 
    } 

} 

dependencies { 
    compile fileTree(include: ['*.jar'], dir: 'libs') 
    compile 'com.android.support:appcompat-v7:25.2.0' 
    compile 'com.android.support:design:25.2.0' 
    compile 'com.google.firebase:firebase-core:10.2.1' 
    compile 'com.google.firebase:firebase-messaging:10.2.1' 
    compile 'com.github.florent37:materialtextfield:1.0.5' 
    compile 'com.android.support:cardview-v7:25.2.0' 
    compile 'com.android.support:support-v4:25.2.0' 
    compile 'com.google.android.gms:play-services:10.2.1' 
    compile 'com.fasterxml.jackson.core:jackson-databind:2.5.3' 
    compile 'com.googlecode.json-simple:json-simple:1.1' 
    compile 'com.weiwangcn.betterspinner:library-material:1.1.0' 
    compile 'com.android.support.constraint:constraint-layout:1.0.2' 
    compile 'com.itextpdf:itext7-core:7.0.3' 
    compile 'com.itextpdf:itext-pdfa:5.5.11' 
    compile 'itext:itext:1.3.1' 
    compile 'org.xhtmlrenderer:flying-saucer-pdf-itext5:9.1.6' 

} 

// ADD THIS AT THE BOTTOM 
apply plugin: 'com.google.gms.google-services' 

S'il vous plaît me aider à résoudre ce problème.

+0

Cocher cette - [java.util.zip.ZipException: entrée en double] (https://stackoverflow.com/a/39120731/6244429) –

+0

@vishal je ne change pas le système ou transférer tout projet utilisant également dernière v7 .... Ce problème je suis confronté lorsque j'essaie d'utiliser iText et importer des dépendances iText –

Répondre

2

duplicate entry: com/lowagie/bc/asn1/ASN1Encodable.class - ce qui indique iText 2.1.7 ou plus ancien, qui n'est pas connu pour être compatible avec Android.

Il y a quelques mauvaises choses dans votre fichier Gradle:

  • compile 'com.itextpdf:itext-pdfa:5.5.11' - qui pointe vers le PDF/A add-on de iText 5, la version 5.5.11, qui est compatible avec Android, mais vous avez toujours besoin du port Android d'iText 5, qui s'appelle iTextG. Donc, vous devez ajoutercompile 'com.itextpdf:itextg:5.5.10'. Oui, 5.5.10, pas 5.5.11, car il n'y a pas itextg:5.5.11. Voir http://repo1.maven.org/maven2/com/itextpdf/itextg/
  • Je suis devinant que vous pensez que le "a" dans "pdfa" signifie Android, mais ce n'est pas le cas. Cela signifie PDF/A: la spécification PDF pour l'archivage (ISO 19005), voir https://en.wikipedia.org/wiki/PDF/A. Si vous n'avez pas besoin d'archivage (vous ne probablement pas, dans une application Android typique), vous avez probablement besoin de supprimercompile 'com.itextpdf:itext-pdfa:5.5.11'
  • compile 'com.itextpdf:itext7-core:7.0.3' - c'est iText 7, qui est pas compatible avec Android. Retirez cette ligne.
  • compile 'itext:itext:1.3.1' - est une version ANCIENT d'iText, et est probablement ce qui cause votre erreur. Retirez cette ligne.
  • compile 'org.xhtmlrenderer:flying-saucer-pdf-itext5:9.1.6' - c'est quelque chose de spécial, dont je ne connais pas assez. Il peut ou non tirer parti d'une autre dépendance d'iText, qui peut être ou ne pas être la mauvaise version. Marquer votre question avec flying-saucer pour attirer une attention particulière.
+0

Merci l'homme que vous m'aidez beaucoup. Au lieu d'utiliser diverses bibliothèques iText, nous devons importer une seule dépendance "compile" com.itextpdf: itextg: 5.5.10 '"Cela résoudra mon problème ... Merci –

+0

Ceci est awsme. essaye ça. https://stackoverflow.com/a/44843333/6523041 –