Android dex donne un BufferOverflowException lors de la construction de
Lors de la compilation spécifique du projet Android, et uniquement sur ma machine Windows, j'obtiens un java.nio.BufferOverflowException
au cours de dex. Le problème se produit lors de l'utilisation d'Eclipse et lors de l'utilisation de Ant.
La sortie lors de l'utilisation de Ant est:
...
[dex] Pre-Dexing C:\MyProject\libs\android-support-v4.jar -> android-support-v4-5f5341d3c1b10a79d7d93f9c1e64421e.jar
[dex] Converting compiled files and external libraries into C:\MyProject\bin\classes.dex...
[dx]
[dx] UNEXPECTED TOP-LEVEL EXCEPTION:
[dx] java.nio.BufferOverflowException
[dx] at java.nio.Buffer.nextPutIndex(Buffer.java:499)
[dx] at java.nio.HeapByteBuffer.putShort(HeapByteBuffer.java:296)
[dx] at com.android.dex.Dex$Section.writeShort(Dex.java:818)
[dx] at com.android.dex.Dex$Section.writeTypeList(Dex.java:870)
[dx] at com.android.dx.merge.DexMerger$3.write(DexMerger.java:437)
[dx] at com.android.dx.merge.DexMerger$3.write(DexMerger.java:423)
[dx] at com.android.dx.merge.DexMerger$IdMerger.mergeUnsorted(DexMerger.java:317)
[dx] at com.android.dx.merge.DexMerger.mergeTypeLists(DexMerger.java:423)
[dx] at com.android.dx.merge.DexMerger.mergeDexes(DexMerger.java:163)
[dx] at com.android.dx.merge.DexMerger.merge(DexMerger.java:187)
[dx] at com.android.dx.command.dexer.Main.mergeLibraryDexBuffers(Main.java:439)
[dx] at com.android.dx.command.dexer.Main.runMonoDex(Main.java:287)
[dx] at com.android.dx.command.dexer.Main.run(Main.java:230)
[dx] at com.android.dx.command.dexer.Main.main(Main.java:199)
[dx] at com.android.dx.command.Main.main(Main.java:103)
BUILD FAILED
C:\Users\Jaap\android-sdks\tools\ant\build.xml:892: The following error occurred while executing this line:
C:\Users\Jaap\android-sdks\tools\ant\build.xml:894: The following error occurred while executing this line:
C:\Users\Jaap\android-sdks\tools\ant\build.xml:906: The following error occurred while executing this line:
C:\Users\Jaap\android-sdks\tools\ant\build.xml:284: null returned: 2
Lors de l'utilisation d'Eclipse, le message est plus courte, mais similaire:
[2013-11-01 14:29:44] APK file is not created for Project:
[2013-11-01 14:29:46 - Dex Loader] Unable to execute dex: java.nio.BufferOverflowException. Check the Eclipse log for stack trace.
[2013-11-01 14:29:46 - MyProject] Conversion to Dalvik format failed: Unable to execute dex: java.nio.BufferOverflowException. Check the Eclipse log for stack trace.
Comme je l'ai dit, je n'ai pas ce problème sur mon MacBook, même si ils sont tous les deux mis à niveau vers la version la plus récente d'Android outils de construction: 19.0.0.
Utilisez-vous les bibliothèques? Vérifier leur installation
juste à la bibliothèque de prise en charge et de Google Analytics V2
Puisque personne ne semblait avoir déposé une question encore, j'ai déposé un: code.google.com/p/android/issues/detail?id=61710
essaie en enlevant tous les android sdk , eclipse , et le code.
obtenir simiar erreur sur Centos x64: !SESSION 2013-11-07 17:07:35.305 eclipse.buildId=v22.3.0-887826 java.version=1.7.0_40 java.fournisseur=Oracle Corporation BootLoader constantes: OS=linux, ARCH=x86_64, WS=gtk, NL=en_US Cadre arguments: -produit com.android.l'ide.eclipse.adt.package.produit arguments de ligne de Commande: -système d'exploitation linux ws gtk -arch x86_64 -produit com.android.l'ide.eclipse.adt.package.produit de java.nio.BufferOverflowException à java.nio.De la mémoire tampon.nextPutIndex(Tampon.java:519)
juste à la bibliothèque de prise en charge et de Google Analytics V2
Puisque personne ne semblait avoir déposé une question encore, j'ai déposé un: code.google.com/p/android/issues/detail?id=61710
essaie en enlevant tous les android sdk , eclipse , et le code.
obtenir simiar erreur sur Centos x64: !SESSION 2013-11-07 17:07:35.305 eclipse.buildId=v22.3.0-887826 java.version=1.7.0_40 java.fournisseur=Oracle Corporation BootLoader constantes: OS=linux, ARCH=x86_64, WS=gtk, NL=en_US Cadre arguments: -produit com.android.l'ide.eclipse.adt.package.produit arguments de ligne de Commande: -système d'exploitation linux ws gtk -arch x86_64 -produit com.android.l'ide.eclipse.adt.package.produit de java.nio.BufferOverflowException à java.nio.De la mémoire tampon.nextPutIndex(Tampon.java:519)
OriginalL'auteur beetstra | 2013-11-01
Vous devez vous connecter pour publier un commentaire.
Pas nécessaire de déclasser les outils de construction de retour à 18.1.11, cette question est fixe avec des outils de construction de 19.0.1.
Si vous ne pouvez pas utiliser 19.0.1 pour une raison quelconque, alors:
Assurez-vous que la valeur de
android:targetSdkVersion
dans AndroidManifest.xml correspondtarget=android-<value>
dans projet.propriétés. Si ces deux valeurs ne sont pas les mêmes, la construction avec des outils de construction de la version 19.0.0 fin à BufferOverflowException. SourceIl y a aussi une indication de commentaires sur ce post que vous avez besoin de cibler au moins 19 (android-19). Merci de laisser un commentaire si cette solution fonctionne également si votre cible est < 19.
C'est de cette façon que le correctif semble pour mon projet. La relative PSBA question est #61710.
1 Si vous avez vraiment besoin de downgrade, vous n'avez pas besoin de désinstaller les outils de construction de 19.0.0, il suffit d'installer 18.1.1 et ajouter
sdk.buildtools=18.1.1
à lalocal.properties
fichier.Cela n'a pas fonctionné pour moi. Vérifié l'ensemble du projet.propriétés et targetSdk. Je suis l'aide de la dernière version de IntelliJ IDEA 13 Cardea. Heureusement, la désinstallation de construire des outils 19.0.0 n'a fixer le construire.
Pour moi pour le faire fonctionner, j'ai également eu à définir la cible SDK de la version la plus récente (19).
J'ai eu de la cible 10 dans les deux AndroidManifest.xml et le projet.les propriétés. Essayé de redémarrer Eclipse et le nettoyage, mais n'a pas aidé. Puis-je définir la cible à 19 dans la configuration.propriétés et cela a fonctionné. N'ont pas essayé de déclassement des outils de construction. (Objectif 15 ne fonctionne pas)
Réglage targetSdkVersion dans le manifeste et la cible dans les propriétés, à 19 fonctionné pour moi
OriginalL'auteur Flow
Essayer ce van dit:
Droit de la souris sur votre
project
→android tools
→android support library
.Espère que cela aide 🙂
OriginalL'auteur Lolo Me
Même problème ici. Revenue à construire des outils 18.1.1, redémarrage d'Eclipse et qu'il fixe.
Cela fixe, pour moi aussi, si je revenue à 18.0.1
J'ai utilisé cette réponse et je n'ai pas à revenir: stackoverflow.com/questions/19727915/...
J'ai vérifié tous les projets.propriétés et targetSdk. Je suis l'aide de la dernière version de IntelliJ IDEA 13 Cardea et a joué avec le projet de la version du SDK. La désinstallation de construire des outils 19.0.0 était la seule façon de résoudre le build pour mon projet.
Merci. Revenant à construire des outils 18.1.1 et la suppression de 19 corrigé cela pour moi. J'ai pensé que j'étais fou
OriginalL'auteur Stefano
J'ai pu obtenir mon problème projet de construction par l'ajout de cette ligne supplémentaire:
...à mon projet.propriétés fichier, qui est présent à la racine du dossier du projet. Toutes les autres approches semblait à l'échec pour moi.
L'utilisées cible ne détermine pas l'utilisé buildtools version.
J'ai ajouté la dernière bibliothèque de prise en charge et ajouté cette ligne dans les propriétés du projet et mon problème a été résolu... merci
Je suis surpris de ce travail; c'est dans le PSBA source
sdk.buildtools
, passdk.build.tools
, et c'était le nom qui a fonctionné pour moi.OriginalL'auteur mrrrk
Clic droit sur le projet >> Propriétés >> Android >> API de Niveau 18 a fonctionné pour moi. Mais avant j'ai fait ce que j'ai fait clic droit sur le projet >> Android Outils de >> Ajouter la prise en charge de la Bibliothèque et redémarré Eclipse. Vous pourriez avoir à jouer avec votre API niveau.
J'ai dû ajouter de projet->Android Outils->Ajouter la prise en charge de la Bibliothèque et de l'installer ADT 19.0.1 Bibliothèque de prise en charge. Après qu'il génère apk amende.
OriginalL'auteur learner
Après l'installation du nouveau SDK, il y a un nouveau dossier "Android Dépendances", en vertu de votre fichier de projet. Si vous faites un clic droit et supprimer à partir de la génération de la trajectoire, vous serez de nouveau en mesure de construire votre projet.
Êtes-vous à l'aide d'un projet de bibliothèque comme une référence dans votre projet?
OriginalL'auteur Mahendra Liya
Mise à jour
right click your project > android tools > android support library
Nettoyer votre projet et essayer de construire.
OriginalL'auteur Harshid
J'ai eu le même problème après la mise à jour de Révision 19. Il suffit de ne pas oublier de mettre à jour l'ADT, https://dl-ssl.google.com/android/eclipse/. Après cela, j'ai été en mesure de construire un projet avec la dernière révision.
OriginalL'auteur van
J'ai corrigé ce problème sans avoir à télécharger la bibliothèque de prise en charge ou de rétablir les outils de construction de 18.1.1.
J'ai simplement changé niveau de l'API pour les+ de 16 ans et le problème a disparu. J'espère que ça aidera.
J'ai simplement cliqué avec le bouton droit de mon projet, et sélectionné Android à partir de la liste. Il doit afficher une liste de installé l'API android versions, sélectionnez celui qui a 16 comme l'API de niveau(4.1.2).
OriginalL'auteur Zsolt Boldizsár
Aucune des autres solutions ici a fonctionné pour moi après la mise à jour Android Studio 0.4.0 et Gradle 1.9.
J'ai résolu le problème en téléchargeant Construire des Outils 19.0.1 et la mise à jour de la ligne suivante dans mon construire.gradle fichiers:
à
OriginalL'auteur Jacob Tabak
Pour ceux qui sont en face d'un problème avec IntelliJ IDEA 13, désinstaller les Outils de construction de 19.
OriginalL'auteur Adí
Eu le même problème avec la version cible
19
sur les deuxproject.properties
etAndroidManifest.xml
avec Ant.Fixe par:
Android SDK Build-Tools 19.0.1
Android SDK Build-Tools 19.0.2
Je pense que @Al-Kathiri-Khalid est sur place. Le problème est uniquement en raison du manque de soutien pour le niveau de l'API dans les Outils de construction.
OriginalL'auteur kontinuity
J'ai eu le même problème, même si mon projet n'a pas utilisé la bibliothèque de prise en charge. L'ajout d'libs/android-support-v4.jar le projet de contourner le problème sans avoir besoin de revenir les outils de construction de retour de v19.
OriginalL'auteur Jim Vitek
J'ai résolu ce problème. Juste faire ce changement dans les propriétés du fichier:
Et dans le fichier manifeste:
OriginalL'auteur Ravi
Ajouter le fichier de la Bibliothèque dans le projet..
Projet->clic droit->Propriétés->android->Bibliothèque-> cliquez sur Ajouter et sélectionnez le Projet de Bibliothèque et de donner à appliquer et ok..
ensuite, nettoyez le projet et exécutez à nouveau.. si vous voulez redémarrer l'éclipse..
Et aussi, parfois, besoin de mise à jour version du SDK Android outils..
OriginalL'auteur harikrishnan
Ce qui a fonctionné pour moi:
J'ai ouvert le projet.fichier de propriétés à partir de la racine de mon projet et changé
target=android-8
àtarget=android-17
OriginalL'auteur Chinciusan Marian
java.nio.BufferOverflowException au cours de dex erreur
Cela signifie que vous n'avez pas le l'appui de l'API pour que le niveau d'où l'échec de la construction, il y a un certain nombre de façons dont vous pouvez résoudre ce problème.
Vérifier votre fichier manifeste uses-sdk android:minSdkVersion="4" et android:targetSdkVersion="14"
Tout de la ci-dessous permettra de résoudre le problème:-
pour votre nouvelle cible target=android-4
votre projet pour ajouter les modifications apportées à votre projet.propriétés (Mon préféré)
OriginalL'auteur Al-Kathiri Khalid
J'ai supprimé le précédent kit SDK d'Android et Eclipse. J'ai installé le ADT bundle et il fonctionne...
Cela a réglé le problème de BufferOverflow sur Dex, qui a commencé après que j'ai obtenu API 19. J'étais auparavant à l'aide d'Eclipse avec le SDK Android installé comme un add-on package.
developer.android.com/sdk/installing/bundle.html
OriginalL'auteur vpathak
Clic droit sur le Projet>>Propriétés>>Android et sélectionnez l'API de Niveau de plus de 15
OU
Ajouter google-play-services_lib à votre projet en cliquant droit sur le projet et en sélectionnant le Projet>>Propriétés>>Android>>Ajouter
OriginalL'auteur Junaid