2016-05-31 8 views
0

Ich entwickle ein Bibliotheksprojekt, das auch In-App-Käufe abwickelt. Also schließe ich die IInAppBillingService.aidl Datei und auch die IabHelper Klassen ein.Doppelte Postleitzahl [com/android/vending/billing/IInAppBillingService.class]

Das Problem ist, wenn der Benutzer meiner Bibliothek auch eine andere 3rd-Party-Bibliothek verwendet, die die IInAppBillingService.aidl Schnittstelle verwendet.

Dann bekommt er die doppelten Reißverschluss Fehler:

java.io.IOException: Can't write [app/build/intermediates/transforms/proguard/debug/jars/3/1f/main.jar] (Can't read [app/build/intermediates/classes/debug(;;;;;;**/*.class)] (Duplicate zip entry [com/android/vending/billing/IInAppBillingService.class])) 

Hinzufügen -injars libs/mylib.aar(!com/android/vending/billing/IInAppBillingService.class) zu seinem proguard-rules.txt hilft nicht.

Wie löst man das?

+0

Haben Sie Ihr Problem gelöst? Wenn ja, wie? – Palaima

+0

@Palaima Ich habe eine weitere optionale Version der Bibliothek erstellt, die als "no-billing" gekennzeichnet ist, wo all diese Dinge entfernt werden. – Pitel

Antwort

0

Sie sind eine Bibliothek mit doppelten Dateien verwenden, um einen Fehler in gradle ist, für diese Verwendung dieses in Ihrem Projekt lösen build.gradle

android { 
packagingOptions { 
    exclude 'META-INF/LICENSE.txt' 
    exclude 'META-INF/NOTICE.txt' 
    exclude '.readme' 
    } 
} 
0

Wenn Bibliothek doppelte Dateien mit

in android{} verwenden
packagingOptions { 
    exclude 'META-INF/LICENSE.txt' 
    exclude 'META-INF/NOTICE' 
    exclude 'META-INF/LICENSE' 
    exclude 'META-INF/NOTICE.txt' 
    exclude 'META-INF/DEPENDENCIES' 
    exclude '.readme' 

}