Le nombre de références de méthode dans un fichier .dex dépasse 64 Ko
Actuellement en train de travailler sur mon application android, à la suite notamment de jouer à des services et firebase bibliothèque dans mon projet, je reçois ce message d'erreur et impossible de faire fonctionner mon code
:app:prePackageMarkerForDebug
:app:transformClassesWithDexForDebug
Pour exécuter dex dans le processus, la Gradle démon a besoin d'un plus grand tas.
Il y a actuellement environ 910 MO.
Pour plus rapidement construit, augmentation de la taille maximale du tas pour le Gradle démon à plus de 2048 MO.
Pour ce faire jeu org.gradle.jvmargs=-Xmx2048M dans le projet gradle.les propriétés.
Pour plus d'informations, voir https://docs.gradle.org/current/userguide/build_environment.html
Erreur:Le numéro de la méthode des références dans un .dex fichier ne peut pas dépasser 64 ko.
Découvrez comment résoudre ce problème à https://developer.android.com/tools/building/multidex.html
:app:transformClassesWithDexForDebug ÉCHOUÉ
Erreur:échec de l'Exécution de la tâche:app:transformClassesWithDexForDebug'.
com.android.construire.l'api.transformer.TransformException: com.android.l'ide.commun.processus.ProcessException: java.util.de façon concomitante.ExecutionException: com.android.l'ide.commun.processus.ProcessException: org.gradle.processus.interne.ExecException: Processus de la commande " /Library/Java/JavaVirtualMachines/jdk1.8.0_60.jdk/Contenu/Home/bin/java" fini avec sortie non nulle valeur 2
Mon build.gradle fichier est ici :
apply plugin: 'com.android.application'
android {
compileSdkVersion 23
buildToolsVersion "23.0.2"
defaultConfig {
applicationId "xyz.in.network"
minSdkVersion 16
targetSdkVersion 23
versionCode 1
versionName "1.0"
}
buildTypes {
release {
shrinkResources true
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
multiDexEnabled true
}
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
testCompile 'junit:junit:4.12'
compile project(':libs:ViewPagerIndicator')
compile 'com.google.android.gms:play-services:9.0.0'
compile 'com.android.support:appcompat-v7:23.4.0'
compile 'com.android.support:design:23.4.0'
compile 'com.google.android.gms:play-services-maps:9.0.0'
compile 'com.google.android.gms:play-services-location:9.0.0'
compile 'com.android.support:cardview-v7:23.4.0'
compile 'com.getbase:floatingactionbutton:1.10.1'
compile 'com.squareup.picasso:picasso:2.5.2'
compile 'com.android.volley:volley:1.0.0'
compile 'com.google.firebase:firebase-messaging:9.0.0'
compile 'com.android.support:multidex:1.0.1'
}
apply plugin: 'com.google.gms.google-services'
Et mon manifestfile est ici
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:name="android.support.multidex.MultiDexApplication"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name=".Util.DisconnectedNetwork"
android:screenOrientation="portrait"
android:theme="@style/Theme.Transparent"></activity>
<service android:name=".FCM.FirebaseMessagingHandler">
<intent-filter>
<action android:name="com.google.firebase.MESSAGING_EVENT"/>
</intent-filter>
</service>
<service android:name=".FCM.FirebaseRegistrationTokenHandler">
<intent-filter>
<action android:name="com.google.firebase.INSTANCE_ID_EVENT"/>
</intent-filter>
</service>
<meta-data
android:name="com.google.android.gms.version"
android:value="@integer/google_play_services_version" />
</application>
Après l'augmentation de la taille du tas de 2048M. Gradle donner cette erreur
D'erreur:échec de l'Exécution de la tâche:app:transformClassesWithDexForDebug'.
com.android.construire.l'api.transformer.TransformException: com.android.l'ide.commun.processus.ProcessException: java.util.de façon concomitante.ExecutionException: com.android.dex.DexIndexOverflowException: méthode ID n'est pas dans [0, 0xffff]: 65536
J'ai suivi toutes les instructions données sur l'android developer site, mais quand même eu ce problème. Comment résoudre ce problème?
source d'informationauteur sasuke
Vous devez vous connecter pour publier un commentaire.
Vous devez activer
multidex
dans l'android par défaut config puis:Lorsque vous construisez votre application dans une routine quotidienne, vous utilisez normalement la
debug
défaut de saveur. Donc, si votre candidature vous a plus de 65k méthode, vous devez ot activer sur tous les arômes.Comme une note de côté, vous souhaiterez peut-être utiliser Proguard sur la version debug de sorte que vous n'aurez pas à activer multiDex sur elle.
Complet app/build.gradle (la documentation)
Dernière partie: ajouter la MultiDex application dans le manifeste (ou un parent de votre propre
Application
Je rencontre une erreur similaire avec mon appli, et j'ai donc installé un plugin dans Android Studio appelées Méthodes de Comptage (http://www.methodscount.com/). Il indique le numéro de la méthode références de chaque dépendance utilise, et il m'a montré compiler chemin
avait plus 69k références sur son propre
Je l'ai changé pour montrer l'un de vos dépendances:
et il montre 69,520 méthode des références comme des dépendances pour cette compilation chemin.
Il est probable que vous n'utilisez pas la mesure de la compilation chemin, et peut être en mesure de préciser davantage axée chemins pour éliminer une partie de la méthode utilisée de références et d'obtenir dans le cadre de la 65k maximum. Une liste des services individualisés sont ici.
Dans mon cas, je ne peux que l'imaginer, j'ai ajouté que les gms services en ligne sur il y a un an quand j'ai incorporé Firebase dans mon application, mais ne peut pas trouver la même référence sur le Firebase site web.
Simplement de le réaliser, un commentaire sur votre question, dit quelque chose de similaire à propos de la rupture de la dépendance en seulement ce dont vous avez besoin.
vous avez mutlidex activé pour libérer la saveur, vous devriez avoir cette ligne aussi pour déboguer saveur