2011-08-14 22 views
6

Tengo ADT cargado en Eclipse clásico. Seguí los pasos de la guía de inicio de Android Helloworld ubicada aquí: http://developer.android.com/resources/tutorials/hello-world.htmlAndroid en Eclipse se bloquea cada vez que abro main.xml

El problema ocurre cada vez que cargo main.xml. Parece ser un problema con el complemento ADT ya que se relaciona con el editor de diseño GUI que tiene (el que crea XML en el fondo). Si accedo a la fuente XML directamente, no se cuelga.

He recibido diferentes mensajes de error, falta de memoria, no hay información de salida y "excepción en checkandloadtargetdata permgen space". Si tiene alguna pregunta sobre mi configuración, no dude en publicarla en los comentarios y actualizaré el hilo.

Estoy ejecutando Windows 7 x64 bit con una instalación bastante limpia. También tengo JDK 1.6. Aquí está el texto del archivo .log de Eclipse ubicado en .metadata. Cualquier ayuda sería apreciada.

!SESSION 2011-08-14 13:11:38.628 ----------------------------------------------- 
eclipse.buildId=I20110613-1736 
java.version=1.6.0_26 
java.vendor=Sun Microsystems Inc. 
BootLoader constants: OS=win32, ARCH=x86_64, WS=win32, NL=en_US 
Command-line arguments: -os win32 -ws win32 -arch x86_64 -debug -console -consoleLog 

!ENTRY org.eclipse.ui 4 0 2011-08-14 13:11:51.038 
!MESSAGE Unhandled event loop exception 
!STACK 0 
java.lang.OutOfMemoryError: PermGen space 
    at java.lang.ClassLoader.defineClass1(Native Method) 
    at java.lang.ClassLoader.defineClassCond(Unknown Source) 
    at java.lang.ClassLoader.defineClass(Unknown Source) 
    at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.defineClass(DefaultClassLoader.java:188) 
    at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.defineClass(ClasspathManager.java:601) 
    at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findClassImpl(ClasspathManager.java:567) 
    at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLocalClassImpl(ClasspathManager.java:490) 
    at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLocalClass_LockClassLoader(ClasspathManager.java:478) 
    at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLocalClass(ClasspathManager.java:458) 
    at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.findLocalClass(DefaultClassLoader.java:216) 
    at org.eclipse.osgi.internal.loader.BundleLoader.findLocalClass(BundleLoader.java:400) 
    at org.eclipse.osgi.internal.loader.SingleSourcePackage.loadClass(SingleSourcePackage.java:35) 
    at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:473) 
    at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:429) 
    at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:417) 
    at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loadClass(DefaultClassLoader.java:107) 
    at java.lang.ClassLoader.loadClass(Unknown Source) 
    at java.lang.Class.getDeclaredConstructors0(Native Method) 
    at java.lang.Class.privateGetDeclaredConstructors(Unknown Source) 
    at java.lang.Class.getConstructor0(Unknown Source) 
    at java.lang.Class.newInstance0(Unknown Source) 
    at java.lang.Class.newInstance(Unknown Source) 
    at org.eclipse.core.internal.registry.osgi.RegistryStrategyOSGI.createExecutableExtension(RegistryStrategyOSGI.java:184) 
    at org.eclipse.core.internal.registry.ExtensionRegistry.createExecutableExtension(ExtensionRegistry.java:905) 
    at org.eclipse.core.internal.registry.ConfigurationElement.createExecutableExtension(ConfigurationElement.java:243) 
    at org.eclipse.core.internal.registry.ConfigurationElementHandle.createExecutableExtension(ConfigurationElementHandle.java:55) 
    at org.eclipse.ui.internal.WorkbenchPlugin.createExtension(WorkbenchPlugin.java:260) 
    at org.eclipse.ui.internal.registry.ViewDescriptor.createView(ViewDescriptor.java:63) 
    at org.eclipse.ui.internal.ViewReference.createPartHelper(ViewReference.java:327) 
    at org.eclipse.ui.internal.ViewReference.createPart(ViewReference.java:229) 
    at org.eclipse.ui.internal.WorkbenchPartReference.getPart(WorkbenchPartReference.java:595) 
    at org.eclipse.ui.internal.ViewReference.getView(ViewReference.java:198) 

!ENTRY com.android.ide.eclipse.adt 4 0 2011-08-14 13:11:51.043 
!MESSAGE Exception in checkAndLoadTargetData. 
!STACK 0 
java.lang.OutOfMemoryError: PermGen space 

!ENTRY org.eclipse.ui 4 0 2011-08-14 13:11:51.056 
!MESSAGE Error occurred during status handling 
!STACK 0 
java.lang.OutOfMemoryError: PermGen space 
    at java.lang.ClassLoader.defineClass1(Native Method) 
    at java.lang.ClassLoader.defineClassCond(Unknown Source) 
    at java.lang.ClassLoader.defineClass(Unknown Source) 
    at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.defineClass(DefaultClassLoader.java:188) 
    at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.defineClass(ClasspathManager.java:601) 
    at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findClassImpl(ClasspathManager.java:567) 
    at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLocalClassImpl(ClasspathManager.java:490) 
    at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLocalClass_LockClassLoader(ClasspathManager.java:478) 
    at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLocalClass(ClasspathManager.java:458) 
    at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.findLocalClass(DefaultClassLoader.java:216) 
    at org.eclipse.osgi.internal.loader.BundleLoader.findLocalClass(BundleLoader.java:400) 
    at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:476) 
    at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:429) 
    at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:417) 
    at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loadClass(DefaultClassLoader.java:107) 
    at java.lang.ClassLoader.loadClass(Unknown Source) 
    at org.eclipse.ui.statushandlers.StatusManager.getStatusHandler(StatusManager.java:135) 
    at org.eclipse.ui.statushandlers.StatusManager.handle(StatusManager.java:189) 
    at org.eclipse.ui.statushandlers.StatusManager.handle(StatusManager.java:231) 
    at org.eclipse.ui.statushandlers.StatusManager.handle(StatusManager.java:242) 
    at org.eclipse.ui.application.WorkbenchAdvisor.eventLoopException(WorkbenchAdvisor.java:326) 
    at org.eclipse.ui.internal.ExceptionHandler.handleException(ExceptionHandler.java:65) 
    at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2700) 
    at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2660) 
    at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2494) 
    at org.eclipse.ui.internal.Workbench$7.run(Workbench.java:674) 
    at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332) 
    at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:667) 
    at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149) 
    at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:123) 
    at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196) 
    at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110) 

!ENTRY org.eclipse.ui 4 4 2011-08-14 13:13:59.256 
!MESSAGE Invalid preference page path: XML Syntax 

!ENTRY com.android.ide.eclipse.adt 4 0 2011-08-14 13:13:59.263 
!MESSAGE Parsing Data for android-7 failed 
!STACK 0 
java.lang.OutOfMemoryError: PermGen space 

Después de probar la siguiente configuración eclipse.ini

-startup 
plugins/org.eclipse.equinox.launcher_1.2.0.v20110502.jar 
--launcher.library 
plugins/org.eclipse.equinox.launcher.win32.win32.x86_64_1.1.100.v20110502 
-showsplash 
org.eclipse.platform 
--launcher.defaultAction 
openFile 
-vmargs 
-Xms2048m 
-Xmx2048m 
-XX:PermSize=1024m 
-XX:MaxPermSize=1024m 
-XX:+UseParallelGC 

ahora consigo algo nuevo, puesto que ya se main.xml "abierto" si abro Eclipse todo el camino, y dejar que agitar durante unos segundos sin hacer nada, el editor de GUI aparece y parece estar funcionando bien. Si hago clic en cualquier otra cosa (como la pestaña de HelloAndroid.java), se bloquea y se bloquea.

+0

Esto suena como un error que se debe informar a Eclipse. – Yuliy

Respuesta

0

Desinstalé el SDK, eliminé mi instalación de Eclipse y volví a instalar todo.

Cosas notables que cambié.

-Impuje la instalación de Eclipse fuera del directorio de archivos de programa, ya que sé que Windows lo trata de manera diferente. Ahora está en C:/Eclipse

-Saqué Android SDK del directorio de archivos de programa, por las mismas razones, y me aseguré de que no hubiera espacios en la ruta. Ahora está en C:/androidSDK/

Parece que funciona bien, ahora. Me pregunto si fue un conflicto entre el eclipse en uno de los directorios del programa y el SDK en el otro. No sé si Windows inicia esos programas de forma diferente según el directorio en el que se encuentren. En cualquier caso, si tiene un problema como este, extráigalos del directorio de archivos de programa.

+0

Por lo que respecta a mi experiencia, esto sucede cuando instalas algunos plugins de EE en el mismo Eclipse que el plugin de Android, y si para ser más específico, esto también me pasó después de solo instalar el plugin de JavaScript. – TacB0sS

4

Creo que necesita aumentar el tamaño de PermGen. Hay un artículo en Eclipse Wiki. 1024m sería suficiente.
De todos modos, mi eclipse.ini debería ayudar también.

cat /opt/eclipse/eclipse.ini 
-startup 
plugins/org.eclipse.equinox.launcher_1.2.0.v20110502.jar 
--launcher.library 
plugins/org.eclipse.equinox.launcher.gtk.linux.x86_64_1.1.100.v20110505 
-showsplash 
org.eclipse.platform 
--launcher.defaultAction 
openFile 
-vmargs 
-Xms2048m 
-Xmx2048m 
-XX:PermSize=1024m 
-XX:MaxPermSize=1024m 
-XX:+UseParallelGC 
+0

En realidad ahora me permite abrir Eclipse, con main.xml ya abierto en la barra de herramientas, y el editor de la GUI parece estar funcionando bien.Ahora se bloquea cuando trato de ir a otra pestaña. – Jazzepi

+0

Es extraño, parece que algo va mal y se te acaba la memoria. Solo puedo aconsejar ejecutar eclipse con -clean flag, limpiar el proyecto, desinstalar complementos adicionales, reinstalar eclipse o windows o instalar Linux;) Y mirar su archivo xml, tal vez tenga algunos errores y eclipse no pueda analizarlo correctamente. Y después de aumentar PermGen, ¿todavía tienes la excepción OutOfMemoryError o alguna otra cosa? – 4e6

+0

Cuando traté de googlear algo, noté que OutOfMemoryErrors aparecía en versiones anteriores de los complementos de eclipse y adt. Entonces, este problema se parece más a un error que a su culpa. – 4e6

4

Tienes que actualizar tu versión jdk a la última versión. Encontré que la mayoría de los casos en línea es que el jdk5 hizo que el eclipse fallara y funcionó por la actualización a jdk6. ¡Utilicé jdk6 pero el problema existió! ¡Finalmente descargué el latest version (jdk7) y el eclipse no se bloquea más!

0

Después de intentar las respuestas en esta publicación. Esto funcionó para mí en Windows 7 x64 bit y JDK 1.7 - eliminar el problemático Eclipse (Mars Java + ADT) y reinstalarlo. No hice ningún cambio en PermSize, pero sí tengo -Xms512m -Xmx1024m en el archivo eclipse.ini. El espacio de trabajo original cargado OK también.

Cuestiones relacionadas