Prograurd Doppelte zip-Eintrag
Ich habe ein problem mit der Signierung und Freigabe einer APK. Ich bekomme Doppelte zip-Eintrag Warnungen und einen Fehler, Hier der code:
Information:Gradle tasks [:app:assembleRelease]
Warning:can't write resource [META-INF/MANIFEST.MF] (Duplicate zip entry [gcm.jar:META-INF/MANIFEST.MF])
Warning:can't write resource [META-INF/MANIFEST.MF] (Duplicate zip entry [gson-2.2.4.jar:META-INF/MANIFEST.MF])
Warning:can't write resource [META-INF/MANIFEST.MF] (Duplicate zip entry [httpmime-4.2.2.jar:META-INF/MANIFEST.MF])
Warning:can't write resource [META-INF/MANIFEST.MF] (Duplicate zip entry [joda-time-2.1.jar:META-INF/MANIFEST.MF])
Warning:can't write resource [META-INF/LICENSE.txt] (Duplicate zip entry [joda-time-2.1.jar:META-INF/LICENSE.txt])
Warning:can't write resource [META-INF/NOTICE.txt] (Duplicate zip entry [joda-time-2.1.jar:META-INF/NOTICE.txt])
Warning:can't write resource [META-INF/MANIFEST.MF] (Duplicate zip entry [splunk-mint-4.2.1.jar:META-INF/MANIFEST.MF])
Warning:can't write resource [META-INF/MANIFEST.MF] (Duplicate zip entry [universal-image-loader-1.9.4.jar:META-INF/MANIFEST.MF])
Warning:can't write resource [META-INF/MANIFEST.MF] (Duplicate zip entry [classes.jar:META-INF/MANIFEST.MF])
Warning:can't write resource [META-INF/MANIFEST.MF] (Duplicate zip entry [support-annotations-24.0.0.jar:META-INF/MANIFEST.MF])
Warning:can't write resource [META-INF/MANIFEST.MF] (Duplicate zip entry [classes.jar:META-INF/MANIFEST.MF])
Error:Execution failed for task ':app:transformClassesWithMultidexlistForRelease'.
> java.io.IOException: Can't write [D:\Android\Android_Project\myapp\app\build\intermediates\multi-dex\release\componentClasses.jar] (Can't read [C:\Users\Amir Mahmoud\.android\build-cache\3936c6cf75e73634f829890fcc2030092ab8dabe\output\jars\classes.jar] (Duplicate zip entry [classes.jar:android/support/v4/view/ViewCompat$ICSViewCompatImpl.class]))
Ich habe sogar versucht, indem Verpackungen Optionen, um die gradle aber es hat nicht funktioniert das ist mein gradle code:
apply plugin: 'com.android.application'
android {
compileSdkVersion 25
buildToolsVersion "25.0.2"
useLibrary 'org.apache.http.legacy'
defaultConfig {
applicationId "com.company.myapp"
minSdkVersion 14
targetSdkVersion 21
versionCode 70
versionName "7.4"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
multiDexEnabled true
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
packagingOptions {
exclude 'META-INF/MANIFEST.MF'
exclude 'META-INF/NOTICE.txt'
}
lintOptions {
checkReleaseBuilds false
//Or, if you prefer, you can continue to check for errors in release builds,
//but continue the build even when errors are found:
abortOnError false
}
}
dependencies {
compile fileTree(include: ['*.jar'], dir: 'libs')
androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
exclude group: 'com.android.support', module: 'support-annotations'
})
// compile 'com.android.support:appcompat-v4:25'
testCompile 'junit:junit:4.12'
// compile fileTree(include: '*.jar', dir: 'libs')
compile 'com.google.android.gms:play-services:10.2.1'
// compile "com.google.android.gms:play-services-gcm:10.2.1"
// compile 'org.apache.httpcomponents:httpmime:4.5.3'
// compile files('libs/gson-2.2.4.jar')
// compile files('libs/httpmime-4.2.2.jar')
// compile files('libs/joda-time-2.1.jar')
// compile files('libs/universal-image-loader-1.9.4.jar')
// compile files('libs/android-support-v4.jar')
}
Ich bin stecken in diesem Projekt für ein paar Tage und ich weiß nicht, was mit ihm zu tun, jeder hilft, sind willkommen.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Zusätzlich zu Jareds Antwort, wenn Sie erhalten eine Fehlermeldung über eine doppelte
.class
Datei(en), nicht nur dieMETA-INF/
- Dateien, müssen Sie möglicherweise ausschließen, beleidigen-Modul, die die doppelte.class
Datei(en).Werden Sie brauchen, um zu identifizieren, welche Abhängigkeit einschließlich das Modul mit der doppelten
.class
Einträge und ausschließen, dass ein Modul aus dieser Abhängigkeit.Können Sie den Befehl Gradle:
./gradlew app:dependencies
Liste den vollständigen abhängigkeitsgraphen. Wo "app:
" ist der name Ihres Projekts Modul/app.Nach der Verwendung der
./gradlew app:dependencies
Befehl sollten Sie schauen Sie durch die Liste der Abhängigkeiten und finden Sie die, darunter auch die problematische Modul mit der doppelten.class
Einträge.Als ein Beispiel, lässt sagen, dass
com.android.support:support-v4
ist das Modul mit den doppelten Klassen, die verursacht diesen Fehler. Hier ist, wie um auszuschließen, dass doppelte Modul aus der Abhängigkeit: