1. Nimm jetzt an unserem Uhans - 3. ADVENT - Gewinnspiel teil - Alle Informationen findest Du hier!

Eclipse / ADT Plugin Out of Memory

Dieses Thema im Forum "Android App Entwicklung" wurde erstellt von Kvothe, 11.04.2012.

  1. Kvothe, 11.04.2012 #1
    Kvothe

    Kvothe Threadstarter Android-Hilfe.de Mitglied

    Beiträge:
    133
    Erhaltene Danke:
    79
    Registriert seit:
    19.10.2011
    Hallo zusammen,

    ich beginne gerade damit mich etwas mit Android App Development zu beschäftigen, bekomme aber Eclipse mit dem ADT Plugin nicht stabil zu laufen.

    Wenn ich z.B. einen Layout Editor aufmache, einen Java Source Editor und dann vll noch compile holt sich der Eclipse Prozess knapp 2GB Ram und schmiert ab (mit gerade mal 2 offenen Dateien).
    Oft schmierts auch schon ab wenn ich nach dem Start nur einen Layout Editor aufmache (und holt sich dabei immer knapp 2GB Ram).

    Ich habe schon einige Eclipse Versionen durch, sowohl 32 als auch 64 Bit, jeweils mit JDK 1.6_31, immer das selbe Problem (auch auf mehreren Rechnern, Windows 7 und Server 2008).
    Natürlich hab ich jedesmal einen cleanen Workspace und ein neues Projekt erstellt (auch wenn das nicht nötig sein dürfte, bin schon etwas genervt).

    Als vmargs hab ich schon 768MB MaxPermSize und 4GB Max Heap angegeben, bringt alles nichts.
    Mir wärs ja auch wurscht wenn Eclipse sich 4Gig Ram nimmt, ich hab in allen Rechnern 8 GB Ram, mehr als 2 schaft die Java VM aber auch in der 64 Bit Version irgendwie nicht, mal abgesehen davon, dass es eigentlich nicht so viel Ram brauchen dürfte aber gut.

    Hatte vll jemand ähnliche Probleme oder kann sich wer vorstellen woran das liegen könnte?

    Die Stack Traces sind leider wenig hilfreich:

    Code:
    !ENTRY org.eclipse.ui 4 0 2012-04-11 00:03:04.030
    !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.defineClassHoldingLock(ClasspathManager.java:626)
    	at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.defineClass(ClasspathManager.java:608)
    	at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findClassImpl(ClasspathManager.java:562)
    	at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLocalClassImpl(ClasspathManager.java:486)
    	at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLocalClass(ClasspathManager.java:459)
    	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.jdt.internal.formatter.CodeFormatterVisitor.<init>(CodeFormatterVisitor.java:198)
    	at org.eclipse.jdt.internal.formatter.DefaultCodeFormatter.formatCompilationUnit(DefaultCodeFormatter.java:239)
    	at org.eclipse.jdt.internal.formatter.DefaultCodeFormatter.format(DefaultCodeFormatter.java:163)
    	at org.eclipse.jdt.internal.formatter.DefaultCodeFormatter.format(DefaultCodeFormatter.java:146)
    	at org.eclipse.jdt.internal.corext.util.CodeFormatterUtil.reformat(CodeFormatterUtil.java:288)
    	at org.eclipse.jdt.internal.ui.text.java.JavaFormattingStrategy.format(JavaFormattingStrategy.java:67)
    	at org.eclipse.jface.text.formatter.MultiPassContentFormatter.formatMaster(MultiPassContentFormatter.java:193)
    	at org.eclipse.jface.text.formatter.MultiPassContentFormatter.format(MultiPassContentFormatter.java:142)
    	at org.eclipse.jface.text.source.SourceViewer.doOperation(SourceViewer.java:977)
    	at org.eclipse.jface.text.source.projection.ProjectionViewer.doOperation(ProjectionViewer.java:1535)
    	at org.eclipse.jdt.internal.ui.javaeditor.JavaSourceViewer.doOperation(JavaSourceViewer.java:191)
    	at org.eclipse.jdt.internal.ui.javaeditor.CompilationUnitEditor$AdaptedSourceViewer.doOperation(CompilationUnitEditor.java:200)
    	at org.eclipse.ui.texteditor.TextOperationAction$1.run(TextOperationAction.java:128)
    	at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:70)
    	at org.eclipse.ui.texteditor.TextOperationAction.run(TextOperationAction.java:126)
    	at org.eclipse.jface.action.Action.runWithEvent(Action.java:498)
    Code:
    !ENTRY org.eclipse.ui 4 0 2012-04-10 23:55:51.725
    !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.defineClassHoldingLock(ClasspathManager.java:626)
    	at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.defineClass(ClasspathManager.java:608)
    	at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findClassImpl(ClasspathManager.java:562)
    	at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLocalClassImpl(ClasspathManager.java:486)
    	at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLocalClass(ClasspathManager.java:459)
    	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 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.defineClassHoldingLock(ClasspathManager.java:626)
    	at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.defineClass(ClasspathManager.java:608)
    	at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findClassImpl(ClasspathManager.java:562)
    	at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLocalClassImpl(ClasspathManager.java:486)
    	at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLocalClass(ClasspathManager.java:459)
    	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)
    VG,
    Kvothe
     
  2. sixi, 11.04.2012 #2
    sixi

    sixi Erfahrener Benutzer

    Beiträge:
    237
    Erhaltene Danke:
    64
    Registriert seit:
    20.01.2009
    Schraub's doch einfach mal weiter hoch?
    Meine Parameter:
    Code:
    -XX:PermSize=512M
    -XX:MaxPermSize=1024m
    -Xms1024m
    -Xmx4096m
    
    Die aktuelle Version ADT hast du vermute ich mal?
     
  3. Kvothe, 11.04.2012 #3
    Kvothe

    Kvothe Threadstarter Android-Hilfe.de Mitglied

    Beiträge:
    133
    Erhaltene Danke:
    79
    Registriert seit:
    19.10.2011
    Jawoll, ich hab vom Plugin die v18.

    Mittlerweile glaube ich das Problem gelöst zu haben, anscheinend war in meiner eclipse.ini ein Typo, sodass das MaxPermSize Argument ignoriert wurde und standardmäßig ist das wohl wahnwitzig niedrig.
    Beim Aufmachen eines Editors ist dann der PermGen space ausgegangen und eclipse abgeschmiert.

    Jetzt läufts auch mit einer MaxPermSize von 512 einwandfrei.

    VG
    Kvothe
     

Diese Seite empfehlen