Cómo solucionar "OutOfMemoryError: java heap space" al compilar la aplicación MonoDroid en MonoDevelop

Cuando intento compilar (no ejecuto) uno de mis proyectos, recibo recientemente el error siguiente:

Tool /usr/bin/java execution started with arguments: -jar /Applications/android-sdk-mac_x86/platform-tools/lib/dx.jar --no-strict --dex --output=obj/Debug/android/bin/classes.dex obj/Debug/android/bin/classes /Developer/MonoAndroid/usr/lib/mandroid/platforms/android-8/mono.android.jar FlurryAnalytics/Jars/FlurryAgent.jar Jars/android-support-v4.jar UNEXPECTED TOP-LEVEL ERROR: java.lang.OutOfMemoryError: Java heap space at com.android.dx.rop.code.RegisterSpecSet.<init>(RegisterSpecSet.java:49) at com.android.dx.rop.code.RegisterSpecSet.mutableCopy(RegisterSpecSet.java:383) at com.android.dx.ssa.LocalVariableInfo.mutableCopyOfStarts(LocalVariableInfo.java:169) at com.android.dx.ssa.LocalVariableExtractor.processBlock(LocalVariableExtractor.java:104) at com.android.dx.ssa.LocalVariableExtractor.doit(LocalVariableExtractor.java:90) at com.android.dx.ssa.LocalVariableExtractor.extract(LocalVariableExtractor.java:56) at com.android.dx.ssa.SsaConverter.convertToSsaMethod(SsaConverter.java:50) at com.android.dx.ssa.Optimizer.optimize(Optimizer.java:99) at com.android.dx.ssa.Optimizer.optimize(Optimizer.java:73) at com.android.dx.dex.cf.CfTranslator.processMethods(CfTranslator.java:273) at com.android.dx.dex.cf.CfTranslator.translate0(CfTranslator.java:134) at com.android.dx.dex.cf.CfTranslator.translate(CfTranslator.java:87) at com.android.dx.command.dexer.Main.processClass(Main.java:487) at com.android.dx.command.dexer.Main.processFileBytes(Main.java:459) at com.android.dx.command.dexer.Main.access$400(Main.java:67) at com.android.dx.command.dexer.Main$1.processFileBytes(Main.java:398) at com.android.dx.cf.direct.ClassPathOpener.processArchive(ClassPathOpener.java:245) at com.android.dx.cf.direct.ClassPathOpener.processOne(ClassPathOpener.java:131) at com.android.dx.cf.direct.ClassPathOpener.process(ClassPathOpener.java:109) at com.android.dx.command.dexer.Main.processOne(Main.java:422) at com.android.dx.command.dexer.Main.processAllFiles(Main.java:333) at com.android.dx.command.dexer.Main.run(Main.java:209) at com.android.dx.command.dexer.Main.main(Main.java:174) at com.android.dx.command.Main.main(Main.java:91) 

Otros proyectos se construyen como se esperaba. ¿Creo que necesito aumentar el tamaño del montón para este paso de la estructura de java? ¿Pero cómo?

Hay una opción en Xamarin Studio para aumentar el tamaño de Heap Java.

Opciones del proyecto -> Android Build -> Avanzado -> Java Heap Size.

Introduzca aquí la descripción de la imagen

Esta sugerencia hizo el truco:

 $ export _JAVA_OPTIONS="-Xmx1g" $ /Applications/MonoDevelop.app/Contents/MacOS/MonoDevelop 

Tengo unos pocos archivos jar en mi proyecto. Flurry, Maps y Newtonsoft … aparentemente esto es suficiente para bombardear la construcción.

Gracias al impresionante equipo de soporte de Xamarin por su rápida respuesta y señalando la solución! Están trabajando en la reducción de la huella de memoria necesaria para los frascos externos.

  • Cómo ejecutar código después de un retraso en Xamarin Android
  • Asegurar cadena en APK
  • OnGlobalLayoutListener en Mono para Android
  • Manejo adecuado del cambio de configuración
  • Xamarin Android deserializa el archivo json local
  • En XNA a Mono Android Conversiones: ¿Qué es una manera simple (o la más simple) de manejar el ciclo de vida de la actividad?
  • Icono de aplicación Crear una información de superposición (número)?
  • MvxListView crea enlace para diseño de plantilla de código
  • SplashScreen con la imagen PNG conduce a Android.Views.InflateException seguido de OutOfMemory
  • Llamada del widget de búsqueda OnNewIntent dos veces
  • Visual Studio 2017 - Xamarin - El archivo "obj \ Debug \ android \ bin \ packaged_resources" no existe
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.