Android на Eclipse падает каждый раз, когда я открываю main.xml

У меня ADT загружен на классический Eclipse. Я выполнил шаги из руководства по Android Helloworld, расположенного здесь: http://developer.android.com/resources/tutorials/hello-world.html

Проблема возникает каждый раз, когда я загружаю main.xml. Это, по-видимому, проблема с плагином ADT, поскольку он относится к редактору макета GUI, который он имеет (тот, который создает XML в фоновом режиме). Если я напрямую обращаюсь к источнику XML, он не сбой.

У меня есть разные сообщения об ошибках, из памяти, информация о выходе и «исключение в checkandloadtargetdata permgen space». Если у вас есть какие-либо вопросы о моей настройке, не стесняйтесь публиковать их в комментариях, и я обновлю эту тему.

Я запускаю Windows 7 x64 бит с довольно чистой установкой. У меня также есть JDK 1.6. Вот текст из файла .log файла Eclipse, расположенного в .metadata. Любая помощь будет оценена по достоинству.

!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 

Попробовав настройки 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 

Теперь я получаю что-то новое, так как main.xml уже «открыт», если я полностью открываю Eclipse и просто позволяю ему отбросить на несколько секунд, ничего не делая, появляется редактор графического интерфейса и, похоже, работает нормально. Если я нажму на что-нибудь еще (как и на вкладке HelloAndroid.java), он закроется и сработает.

Я думаю, вам нужно увеличить размер PermGen. В Eclipse Wiki есть статья. 1024 м было бы достаточно.
Во всяком случае, мой eclipse.ini тоже должен помочь.

 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 

Вам нужно обновить версию jdk до последней версии. Я обнаружил, что большинство случаев в Интернете – это то, что jdk5 заставил eclipse разбиться, и они были разработаны путем обновления до jdk6. Я использовал jdk6, но проблема существовала! Наконец, я загружаю последнюю версию (jdk7), и затмение больше не сбивается!

Я удалил SDK, удалил установку Eclipse и переустановил все.

Известные вещи я изменил.

-Я перенесла установку Eclipse из каталога программных файлов, так как я знаю, что Windows относится к этому по-другому. Теперь он находится в C: / Eclipse

-Я переместил Android SDK из каталога файлов программ по тем же причинам и убедился, что в пути не было пробелов. Теперь он находится в C: / androidSDK /

Кажется, сейчас работает нормально. Интересно, был ли конфликт между eclipse находящимся в одном из файлов файлов программ, а SDK – в другом. Я не знаю, будут ли окна загружаться этими программами по-разному на основе того, в каком каталоге они находятся. В любом случае, если у вас есть такая проблема, выведите их из каталога файлов программ.

Попробовав ответы в этом сообщении. Это сработало для меня на Windows 7 x64 бит и JDK 1.7 – удалите неприятный Eclipse (Mars Java + ADT) и переустановите. Я не внес изменений в PermSize, но у меня есть -Xms512m -Xmx1024m в файле eclipse.ini. Также загрузилось исходное рабочее пространство.