N2-Works
WEB企画・制作/システム開発 大阪拠点

AndroidNDKのUnresolved inclusionへの対処

TIPS本を進めていますが、いきなりつまづきました。

Eclipse上でcファイルを編集していると#include の行で「Unresolved inclusion」と表示され、入力補完も動作しません。

Eclipseのエディタがcの文法に対応していないのかと「CDT」をインストールしようとしたところ、すでにインストール済だと表示されました。

次にエラーメッセージから考えると、パスが通っていないのだろうなと思いました。

しかしEclipseに詳しいわけではないので、パスの通し方がよく分かりません。

google先生に助けを求めると、下記リンク先で同じような問題に悩んでいる人がいました。

c - unresolved inclusion in the java header in JNI - Stack Overflow

それによると、

(1) [ファイル]-[新規]-[その他]-[C/C++]-C/C++プロジェクトに変換
(2) [プロジェクト]-[プロパティ]-[C/C++ 一般]-[パスおよびシンボル]のインクルードタブの言語「GNU C」および「GNU C++」において「{NDKのホームパス}\platforms\android-{SDKminVersion}\arch-arm\usr\include」というパスを追加

とすると解決できるとありました。

実際にやってみると、エディタ上で確かにエラーが出なくなりNDK関連のAPIに関しても補完できるようになりました。

しかし今度はビルドが通らなくなってしまいました。 原因を調べるとツールチェインが問題となっているようです。

(1) [プロジェクト]-[プロパティ]-[C/C++ ビルド]-[ツールチェインエディタ]で現在のビルダーをAndroid Builderに変更
(2) [プロジェクト]-[プロパティ]-[C/C++ ビルド]のビルダー設定で自動的にMakefileを生成チェックを外して、cygwin上でndk-buildしているパスをビルドディレクトリーに設定

以上の処理でビルドが通るようになりました。

Makefileを自分で作成している場合は、そのディレクトリでビルドさせましょうということなのでしょう。

[Android]2012年11月28日 23時44分47秒

※1000文字以内で入力してください

captcha
TOP