Eclipseでandroid NDK使用していて「Unresolved Inclusion」でこまってしまった時


 androidのNDKを使用してJNIそ使用する際に「Unresolved Inclusion」が「jni.h」等に出てしまう場合旧来のバージョンだとincludeヘッダのパスを「{ndkインストールしたパス}\android-ndk-r8e\platforms\android-9\arch-arm\usr\include」辺りに設定してあげれば問題なかったと思いますが最新のNDKでは、これ解消されて必要ありません。

 当方は、Windows7-64Bit 上でhttp://mergedoc.sourceforge.jp/にある「Eclipse Pleiades4.2 Platform-StandardEdition」の64Bit版、「ndk-r8e」、「android sdk のADT22」を使用していますが特に問題ありません。

 新規プロジェクト作成してそのまま開発するだけならね。

そう。問題があったんです。


 プロジェクトフォルダ毎コピーしてそのプロジェクトを開いたらJAVAだけなら問題なくビルドできるのにJNIがあるとダメなんです。「Unresolved Inclusion」がでます。includeフォルダへのパスも問題なく通っているのにダメです。何故なんでしょう?
 
 色々と調べたり試したり調べたりと延々4時間やっと解決策が見つかりました。
 どうするかというと・・・

 まず、 服を脱ぎます・・・

 じゃなくてjniフォルダの下をバックアップします。

 Eclipseの[ウィンドウ]-[設定]-[C/C++]にある[プロパティページ]を開き真ん中辺にある「Display "Preprosessor Include Paths" tab and enable language settings providers」のチェックを外します。設定の保存します。
 
 次にEclipseを終了します。

今回修復したいプロジェクトフォルダにある「.cproject」 ファイル(cが付いているか良く確認してください。.projectと間違わないように。)と「bin」フォルダを削除!
 
 「.project」ファイルをテキストエディタ等で開き「buildSpec」タグの子タグで「org.eclipse.cdt」が付いているものを削除。
  「nature」 タグで「org.eclipse.cdt」が付いているものを削除。ファイル保存。
 要するに一度「AddNativeSupport」で追加したものを撤去してもう一度再構築しようと言う事です。

 ですのでEclipseを起動して右クリックandroidtoolsから「AddNativeSupport」してウィザードが作成したcppファイルを開いてヘッダの問題がなくなっている事を確認したらjniフォルダにバックアップしたファイルを戻せば勝利です。

ちなみにパッケージ名を変えた時にも有効でした。

 参考にしたサイト:
http://pilcrowpipe.blogspot.jp/2011/12/removing-native-support-from-android.html

*****************************
後日追加:
「Eclipseでandroid NDK使用していて「Unresolved Inclusion」でこまってしまった時」を読んだ方へ追加





スポンサーリンク

コメント

このブログの人気の投稿

最も快適?!新たなAndroidエミュレーターが出現。その名も「Nox App Player」

Genymotion Ver2.10 無料版(個人使用のみ)のダウンロード先に関して[Genymotion]

andyが起動しない、動かないので困った場合の対処方法[PCでスマホアプリ]