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があるので、こっちを使えば問題なし!
他にもいくつかあった気がするけども、思い出したらまた追記する。