web-dev-qa-db-fra.com

Android: échec de la conversion au format Dalvik: impossible d'exécuter dex: null

J'essaie d'utiliser SmugFig API SmugMug sur Android. Il a été conçu pour J2SE, j'imagine, donc je ne suis pas sûr qu'il fonctionnera même sur Android, mais j'ai pensé que cela valait la peine d'essayer plutôt que de créer ma propre API.

Cependant, lorsque je charge le projet, j'obtiens l'erreur suivante:

Conversion to Dalvik format failed: Unable to execute dex: null

Il ne dit pas sur quel package il échoue, juste "Problème de packaging Android", mais il ne l'a pas fait avant d'ajouter SmugFig et c'est la dépendance JARS au chemin de génération.

Où dois-je chercher? Ou est-ce principalement moi qui ne fonctionnera pas avec ces bibliothèques?

33
Adam Haile

J'ai trouvé une entrée de blog qui dit d'augmenter la mémoire allouée dans Eclipse.ini à ceci: -Xms128m -Xmx512m ou quelque chose de plus élevé, mais cela ne l'a pas fait pour moi.

Cependant, j'ai trouvé un autre post qui a suggéré de faire Project> Clean et qui l'a corrigé pour moi. Je pense que cela se produit lorsque vous arrêtez Eclipse sans fermer l'émulateur en premier. Bug assez boiteux. J'ai passé quelques heures à chercher la solution ce matin ... grrrrrrr :-(

41
ken

Allez dans Projet "Propriétés" Java Chemin de construction "Bibliothèques et supprimez tout sauf" Android XY "(dans mon cas Android 1.5). Cliquez sur OK. Allez dans Projet "Nettoyer" Nettoyer les projets sélectionnés ci-dessous "sélectionnez votre projet et cliquez sur OK. Cela devrait fonctionner.

Il est également possible que vous ayez un fichier JAR situé quelque part dans les dossiers de votre projet (j'avais copié le fichier Admob JAR dans mon dossier src) et ensuite l'ajouté comme une bibliothèque de chemins d'accès Java. Java. n'apparaît pas sous l'explorateur de packages, donc vous ne le remarquez pas, mais il est compté deux fois, provoquant l'erreur redoutée de Dalvik 1.

Une autre raison possible pourrait être les conflits de nom de package. Supposons que vous ayez un package com.abc.xyz et une classe nommée A.Java dans ce package, et un autre projet de bibliothèque (qui est ajouté à la dépendance de ce projet) qui contient le même com.abc.xyz.A.Java, alors vous obtiendrez exactement la même erreur. Cela signifie que vous avez plusieurs références au même fichier A.Java et que vous ne pouvez pas le créer correctement.

16
Chu Chau

Après la mise à jour Eclipse DDMS 8.0.0 avec la sortie de Android 2.3 cette erreur est soudainement apparue.

Aucune des suggestions ci-dessus n'a aidé, mais il s'est avéré que la racine du problème était un projet référencé (quelques classes partagées entre le côté serveur et le côté client).

Une fois que j'ai supprimé la référence du projet et construit et inclus un pot du projet une fois référencé, le problème a cessé d'exister.

On dirait que quelque chose a mal tourné dans DDMS 8.0.0 avec des projets référencés.

6
monsta

Ce qui a fonctionné pour moi a été de supprimer la référence Android.jar dans

Configurer le chemin de génération -> Java Chemin de génération -> Bibliothèques

Laissez la référence de la bibliothèque Android 3.0.

5
Das

c'est simplement à cause de la taille du tas occupée par certains fichiers JAR ... qui peuvent être supprimés manuellement ...

sinon la meilleure option est de modifier le fichier Eclipse.ini dans le dossier Eclipse .....

ajoutez -Xmx1024m au fichier pour rendre la taille de la mémoire à 1 Go ... cela fonctionnera à coup sûr .....

4
Regish K Nair

Étapes qui m'aident à supprimer cette erreur

  1. supprimer les bibliothèques utilisateur (bibliothèques externes).
  2. nettoyer le projet
  3. ajouter à nouveau la bibliothèque externe
  4. construire le projet
  5. exécuter le projet.

J'espère que cela vous sera utile. Merci.

3
Mallu Don

http://groups.google.com/group/Android-developers/browse_thread/thread/3911749addce534d

Ils travaillent à pousser un correctif maintenant pour 2.3

Edit: Cela a été corrigé pour 2.3, allez chercher la mise à jour via Eclipse.

2
joe
-startup
plugins/org.Eclipse.equinox.launcher_1.2.0.v20110502.jar
--launcher.library
plugins/org.Eclipse.equinox.launcher.win32.win32.x86_1.1.100.v20110502
-showsplash
org.Eclipse.platform
--launcher.XXMaxPermSize
512m
--launcher.defaultAction
openFile
-XX:MaxPermSize=512m
-vmargs
-Xms512m
-Xmx1024m

fonctionne pour moi https://groups.google.com/forum/?fromgroups=#!topic/phonegap/yWePvssyiLE

2
Rubycon

Seulement cela résout mon problème .Projet> Nettoyer

1
salman khalid

Assurez-vous de ne pas référencer le même projet dans un bocal et Eclipse. Par exemple, vous avez un projet appelé myproject dans Eclipse. Votre projet Android fait référence à la fois au projet myproject et au fichier jar généré à partir de celui-ci. Cela donnera une erreur lorsque vous essayez de dex comme il essaie de dex contre les classes générées à partir de myproject et de myproject.jar

1
charroch

Pour les projets utilisant New Relic

Mettre à jour la nouvelle relique via "Mettre à jour la nouvelle relique" sous Projet r'click -> Update New Relic. Cela a fonctionné pour moi.

0
AndyW

Ici ils suggèrent que ces erreurs sont causées par d'énormes fichiers .Java.

J'ai eu le même problème et incrémenter la mémoire allouée fonctionne pour moi.

0
Julio J.

J'aide à supprimer le dossier /home/user/.Android. Système d'exploitation: Debian Wheezy 32bit

0
GeX

Absolument aucun des "correctifs" mentionnés précédemment n'a fonctionné pour moi, ce qui n'est pas surprenant car ils ne traitent même pas le problème pour commencer.

Le bogue lui-même provient d'un conflit avec Proguard. Voici le rapport de bogue: http://code.google.com/p/Android/issues/detail?id=18359 Et pour le corriger, il vous suffit de mettre à jour manuellement Proguard: http://sourceforge.net/projects/proguard/files/latest/download?source=files

0
b1nary.atr0phy