EclipseにCDTを入れたらexpandUsingDeclarationsAndRemoveObjectsで落ちる

最近のADTはかなり便利で、いちいちcygwinだのndk-buildだのを呼ばなくても直接Eclipseの中からビルドができるようになっています。
ただ、僕の環境がアップデートを繰り返していたからなのか、Window→Preferences→AndroidにNDKの項目がありませんでした。ADTは21で最新になっているのに。
結局これはADTとAndroid Native Development Toolsを両方一旦削除して再インストールすることで直りました。

ところが、プロジェクトを開いた瞬間にEclipseがJavaVMごと落ちて、以降起動しない現象に陥りました。
どうもCDTのせいらしいです。

# JRE version: 6.0_24-b07
# Java VM: Java HotSpot(TM) 64-Bit Server VM (19.1-b02 mixed mode windows-amd64 compressed oops)
# Problematic frame:
# j  org.eclipse.cdt.internal.core.dom.parser.cpp.semantics.CPPSemantics.expandUsingDeclarationsAndRemoveObjects([Lorg/eclipse/cdt/core/dom/ast/IBinding;Lorg/eclipse/cdt/internal/core/dom/parser/cpp/semantics/LookupData;)[Lorg/eclipse/cdt/core/dom/ast/IBinding;+0

eclipse.iniに

-XX:-UseCompressedOops

を追加すると良いと書いてあったのを見つけて、末尾に追加したら解決しました。

Bug 333227 – Oracle Java 6 update 23 crashes when running Eclipse CDT (64-bit version of CDT & JRE) [see comment 7 for workaround]

UseCompressedOopsのオプションについては以下のサイトが詳しいです。

UseCompressedOops オプションのデフォルト値 – めざせ!金持ち父さん


タグ: , ,

新しく会社作りました!

コメントをどうぞ