6
votes

Erreur Android "Conversion au format DALVIK a échoué avec erreur 2"?

J'utilise Flurry SDK dans mon application, avant d'ajouter ce fichier de jar fluillant, il fonctionne bien avec toutes les erreurs. Après avoir ajouté un fichier jar fluillant dans le dossier de libs, je reçois cette erreur lorsque je compose une demande d'application dans Eclipse.

trouble writing output: Too many methods: 70205; max is 65536. By package:
  5 android.accessibilityservice
  1 android.animation
  2 android.annotation
315 android.app
136 android.content
 28 android.content.pm
 47 android.content.res
 35 android.database
 14 android.database.sqlite
  8 android.gesture
113 android.graphics
 44 android.graphics.drawable
  1 android.graphics.drawable.shapes
 11 android.location
 27 android.media
 40 android.net
  1 android.net.http
  1 android.net.wifi
 96 android.os

[2013-03-04 16:42:13 - myapp] Conversion to Dalvik format failed with error 2


7 commentaires

Il suffit de nettoyer et de rafraîchir votre projet


Je l'ai fait plusieurs fois, mais aucune utilisation ..


Regardez ce Stackoverflow.com/Questtions/8805713/...


Stackoverflow.com/Questtions/4634936/... Vérifiez cela aussi


antew.com/?p=143 Vérifiez ceci pour référence


Salut Raja, comment avez-vous finalement résolu votre problème? Avec Proguarad ou Custom Ant Build Script.Veuillez vous aider, je suis confronté à un problème et que je ne pouvais pas le résoudre.


Problème avec plus de fichiers JAR dans mon application, alors j'ai supprimé certaines d'entre elles qui ne sont pas obligatoires dans mon application.


3 Réponses :


12
votes

Étant donné que l'erreur est Sortie d'écriture de problèmes: Trop de méthodes: 70205; Max est 65536 , "La Sollution pour cette" est de réduire votre méthode compte d'environ 10%.

Il s'agit généralement de la faute d'avoir trop de pots avec trop de méthodes, bien qu'il soit certainement concevable que vous écriviez vous-même des dizaines de milliers de méthodes vous-même.

Essayez de trouver un pot que vous n'avez pas besoin et de le supprimer. Par exemple, vous pouvez Utilisez PROGUARD pour signaler le code mort dans votre application - Peut-être qu'il y a un pot à charge de certaines bibliothèques dont la bibliothèque a besoin habituellement, mais la façon dont vous utilisez la bibliothèque n'est pas nécessaire.

Proguard elle-même peut également être utilisée pour supprimer ce code mort de votre application, sans toutes les trucs d'obfuscation normaux. Cependant, cela ne fait pas partie du processus de construction normal, vous devez donc faire la bonne cuire un script de fourmis pour cela.


2 commentaires

Comment utiliser PROGUARD pour trouver du code mort dans mon application, est-il possible de supprimer le code mort de mes fichiers JAR


Bonjour Commonware, j'essaie de lire des fichiers XLSX dans Android et j'ai été au-dessus de ladite erreur peut me donner un exemple de script de Proguard ou personnalisé pour que je puisse le résoudre?



1
votes

J'avais cette erreur parce que j'incluais Google Apis dans mon projet.


0 commentaires

1
votes

Ce que j'ai observé, c'est que nous ne devrions pas mettre le fichier jars directement dans un dossier comme xxx

lorsque j'ai créé un sous-dossier dans le libs ou tout Dossier pour cela comme xxx

Vous pouvez charger le nombre de fichiers JAR dans ce dossier TEMP. De cette façon, j'ai pu éviter l'erreur. Il n'a pas besoin de ne pas être libs le dossier lui-même. Le nom peut être n'importe quoi.

Cela ne doit être fait que si les fichiers JAR sont élevés en nombre. Sinon, vous pouvez mettre directement dans le dossier libs .


1 commentaires

Je ne comprends pas vraiment comment cela fait-il une différence?