即使我增加了Eclipse可用的permgen大小,我也得到了java.lang.OutOfMemoryError。怎么修?

时间:2012-08-04 19:07:49

标签: eclipse adt out-of-memory ubuntu-11.10

我修改了eclipse.ini来修复java.lang.OutOfMemoryError。但问题仍然存在。这些是eclipse.ini中设置的选项:

-startup
plugins/org.eclipse.equinox.launcher_1.3.0.v20120522-1813.jar
--launcher.library
plugins/org.eclipse.equinox.launcher.gtk.linux.x86_1.1.200.v20120522-1813
-product
org.eclipse.epp.package.rcp.product
--launcher.defaultAction
openFile
-showsplash
org.eclipse.platform
--launcher.XXMaxPermSize
3000m
--launcher.defaultAction
openFile
-vmargs
-Dosgi.requiredJavaVersion=1.5
-Dhelp.lucene.tokenizer=standard
-XX:MaxPermSize=3000m
-Xms3000m
-Xmx3000m
-XX:PermSize=3000m 

这是我打开通用Android项目的任何文件时出现的错误:

Exception in thread "org.eclipse.wst.sse.ui.internal.reconcile.StructuredRegionProcessor" java.lang.OutOfMemoryError: PermGen space
    at java.lang.ClassLoader.defineClass1(Native Method)
    at java.lang.ClassLoader.defineClass(ClassLoader.java:634)
    at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.defineClass(DefaultClassLoader.java:188)
    at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.defineClassHoldingLock(ClasspathManager.java:632)
    at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.defineClass(ClasspathManager.java:614)
    at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findClassImpl(ClasspathManager.java:568)
    at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLocalClassImpl(ClasspathManager.java:492)
    at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLocalClass(ClasspathManager.java:465)
    at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.findLocalClass(DefaultClassLoader.java:216)
    at org.eclipse.osgi.internal.loader.BundleLoader.findLocalClass(BundleLoader.java:395)
    at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:464)
    at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:421)
    at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:412)
    at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loadClass(DefaultClassLoader.java:107)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:266)

注意:我在Ubuntu 11.10上使用Eclipse junco,我正在尝试使用ADT插件开发一个Android应用程序。

2 个答案:

答案 0 :(得分:1)

我已修复:我删除了我的eclipse“Eclipse for RCP和RAP Developers”,而我使用了“Eclipse IDE for C / C ++ Developers”。现在一切正常。 感谢各位的帮助!

答案 1 :(得分:-1)

您可能希望查看代码而不是eclipse。也许它有一个错误导致它分配太多内存或者写得不是很有效。出现内存异常的可能原因是:

- 将大文件放入RAM

- 无限循环创建对象或将数据附加到变量

- 在RAM中存储大量任何类型的数据

我希望这可以帮助您更接近解决方案。