Android-Gradle Multidex Build-Problem auf API 19
Ich habe ein Projekt, in dem ich aktiviert haben multidex
zu vermeiden 65k limit
und auch productFlavors
(dev-API-21 und prod API 19) für die Anpassung.
Bau mein Projekt auf API 21
ich.e dev Geschmack ist erfolgreich, aber auf API 19
d.h. prod Geschmack ist er ständig er mir exception in-app task - shrink{component}MultiDexComponents
Vollständige Fehlerprotokoll:
:app:shrinkProdDebugMultiDexComponents FAILED
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':app:shrinkProdDebugMultiDexComponents'.
> java.io.IOException: Can't read [{Project Path}/app/build/intermediates/multi-dex/prod/debug/allclasses.jar] (Can't process class [com/olivephone/office/a/b/e/p.class] (Unknown verification type [17] in stack map frame))
bauen.gradle
apply plugin: 'com.android.application'
android {
compileSdkVersion 23
buildToolsVersion '23.0.0'
defaultConfig {
applicationId '{Project Name}'
minSdkVersion 15
targetSdkVersion 23
versionCode 1
versionName "1.0"
multiDexEnabled true
}
productFlavors {
dev {
//dev utilizes minSDKVersion = 21 to allow the Android gradle plugin
//to pre-dex each module and produce an APK that can be tested on
//Android Lollipop without time consuming dex merging processes.
minSdkVersion 21
}
prod {
//The actual minSdkVersion for the application.
minSdkVersion 19
}
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
compile fileTree(include: ['*.jar'], dir: 'libs')
compile 'com.android.support:appcompat-v7:23.0.1'
compile 'com.android.support:recyclerview-v7:23.0.1'
compile 'com.android.support:cardview-v7:23.0.1'
compile 'com.oguzdev:CircularFloatingActionMenu:1.0.2'
compile 'com.google.code.gson:gson:2.3.1'
compile 'com.google.android.gms:play-services:8.1.0'
compile 'com.android.support:multidex:1.0.1'
compile files('libs/linkedin-j-android.jar')
compile files('libs/itsrts-pptviewer.jar')
compile files('libs/signpost-core-1.2.1.1.jar')
compile 'org.twitter4j:twitter4j-core:4.0.2'
compile files('libs/universal-image-loader-1.9.2-SNAPSHOT-with-sources.jar')
compile files('libs/dropbox-android-sdk-1.6.3.jar')
compile files('libs/json_simple-1.1.jar')
compile 'com.joanzapata.pdfview:android-pdfview:1.0.1@jar'
compile 'com.facebook.android:facebook-android-sdk:4.1.0'
}
Jede Hilfe, bitte jemand ??
versuchen sauber aufzubauen.
Bereits haben !! Kein Glück gibt
Sind Sie mit Proguard?
Nein, nicht mit Proguard
Bearbeitet die Frage, mit bauen.gradle
Bereits haben !! Kein Glück gibt
Sind Sie mit Proguard?
Nein, nicht mit Proguard
Bearbeitet die Frage, mit bauen.gradle
InformationsquelleAutor Sidakpreet N | 2015-09-28
Du musst angemeldet sein, um einen Kommentar abzugeben.
Multidex-support für Android 5.0 und höher
Dies ist der Grund, warum Ihre app ist in Ordnung, die auf API-Ebene 21.
Multidex Unterstützung vor Android 5.0
Also, Erstens sicherzustellen, dass Sie korrekt importiert Abhängigkeit, die Es scheint, Sie Tat es.
In Ihrem manifest hinzufügen, die
MultiDexApplication
Klasse aus das multidex-support-Bibliothek, um das application-element.Alternative zu, dass, Wenn die app erweitert die
Application
Klasse, die Sie außer Kraft setzen könnenattachBaseContext()
Methode, und rufenMultiDex.install(this)
zu aktivierenmultidex
.Ich hoffe, es wird helfen Sie aus.
Danke.. Bhuvesh ich fügen Sie einfach folgenden code in meiner Anwendung Datei, die es den trick tun ,kein BUNDLE in oncreate keine attachBaseContext (), und vorher war ich nur mit MULTIDEX JAR in meinem build, aber meine app stürzt ab unter api-21, die zur Laufzeit.. jetzt seine Arbeit nicht kennen Grund dahinter. public void onCreate( ) { MultiDex.installieren(this); super.onCreate(); // Initialisierung der singleton-sInstance = this; }
InformationsquelleAutor Bhavesh Patadiya
In der API-21, die
:app:shrinkProdDebugMultiDexComponents
Befehl nicht aufgerufen werden, da API-21, die bereits verwendet wird ART statt Dalvik. So unterstützen nativ multidex.Für API unter 21, dann wird der Befehl
:app:shrinkProdDebugMultiDexComponents
ausgeführt wird.Überprüfen Sie Ihre
build.gradle
sieht alles gut aus, das bringt mich auf die folgenden.Haben Sie setup multidex unterstützen, richtig?
Haben Sie Ihre setup-manifest zu unterstützen Multidex?
ODER wenn Sie wirklich erweitern die application-Klasse, die Sie dies tun können:
oder nutzen Sie diese "pre-built" - version
Verwendet dieselbe aber nicht funktioniert.
InformationsquelleAutor Fadils
Habe ich nicht guckte in die Logik, die hinter diesem, aber in meinem Fall war es aufgrund von versions-Konflikten
compile 'com.android.support:appcompat-v7:25.3.1'
undcompile 'com.google.android.gms:play-services:10.2.4'
in meinem bauen.gradle Datei.Nur damit
multidex
hat bei mir nicht funktioniert. Während der Suche nach anderen Lösungen, die ich fand einige Leute beschweren sich über seltsame Problem der version Konflikt vonplay-services
. So, ich zurückweichen der code ändert und endlich geändertplay-services
version von 10.2.4 zu 10.2.1 und es funktionierte für mich.InformationsquelleAutor Ankur
Gelöst, oben crash-Problem. Ich entfernen Sie einige nicht verwendete Abhängigkeiten und auch entfernt rx java-Abhängigkeit
io.reactivex.rxjava
. In Ersatz des Rx-java habe ich einige dummy-Klassen, die in meinem Paket, das bereits hier beschrieben https://realm.io/docs/java/latest.InformationsquelleAutor Devganiya Hitesh
Bitte ändern Sie Ihre Abhängigkeiten wie folgt :
Bearbeitet Abhängigkeiten:
Grund dafür ist, dass 'kompilieren Dateibaum(dir: 'libs': ['*.Glas']) umfasst alle jar-Datei gradle, die im libs-Ordner..
Dank.!!
InformationsquelleAutor AndiGeeky
Den shrinkProdDebugMultiDexComponents Aufgabe ruft Proguard, so kommt dieser Fehler von Proguard code.
Meine Vermutung wird sein, dass du nicht die aktuelle version von Oliven-Office-SDK (was wahrscheinlich verschleierte mit Kinderwagen oder falsch konfiguriert Proguard-version). Wenn dies der Fall ist, erhalten Sie die neueste version von SDK für Entwickler.
Für Abhilfe, überprüfen diese ähnlichen bug. Obwohl es geschlossen war, mit wontfix status, dieser Beitrag wird beschrieben, wie patch die Proguard-code.
Überprüfen Sie auch diese und dass Antworten von Eric Lafortune (Proguard - Autor) zu ähnlichen Themen.
InformationsquelleAutor Alex Lipov