Android NDKデバッグ

久しぶりに、NDKでデバッグをやってみた。

 

ADTr20からは、非常に簡単にNDKプロジェクトが作成、デバッグできるようになっている。参照:ADT r20でNDKビルド&デバッグまとめ

 

しかし、いくつかはまるポイントがあったので、挙げておく。

  • ndk-build時にNDK_DEBUG=1を指定する必要がある。eclipseで、プロジェクトを選択して、右クリックでプロパティで、[C/C++ Build]の[Builder Settings]でndk-buildのコマンドライン設定で指定する。
  • android:debuggable は指定しない。環境側(ADT?)が自動で設定してくれるらしい。NDKでなくとも、今は使わない方がいい。
  • 実際のビルドではエラーが無いのだが、eclipseにビルドエラーが表示される。これは、application.mkで、APP_CXXFLAGS -std=gnu++0xを指定すると現れた。このフラグでgccは内部的にいくつかのマクロを定義するのだけども、CDTのCode Analysisはそこまで見ないのでエラーとして報告する。何にせよ実際のビルドでエラーはなくとも、eclipse (CDT)がエラーとして認識しているとデバッグできないので、これを解決する必要がある。
    Code Analysis機能を無効にするには、プロジェクトを選択して、右クリックでプロパティで、[C/C++ General] - [Code Analysis] "Use project settings"を選択して、その下の段のすべてのチェックをオフにする。
  • Sharp端末ではNDKデバッグできない。
    セキュリティのためかもしれないが、開発には全く使えない。他の日本製端末はどうだか不明だが、やっぱりNexusが安心安全。
  • [追加] NDK r8cでのminSdkVersoin のWarningのエラー。 今は、r8dがあるので、こっちを使えば問題なし!

 他にもいくつかあった気がするけども、思い出したらまた追記する。