AndroidNDKのjavah
最近Androidの開発を全然やっていなかったのですが、知らない間にNDKの地位が向上していたようです。
導入時にはいつもそうするように、TIPS本を買ってきました。
AndroidNDKはインターネット上にも資料が少なく、google公式のドキュメントもサポートが十分ではないようです。
Windows上で開発環境を整えて、HelloWorldまでは順調でした。
しかしJNIの関数のプロトタイプ宣言を記載したヘッダーを作成してくれるというjavahの項で躓きました。
書籍にはcygwin上にて以下の記載で作成されるとあります。
書籍の内容
パッケージ名:com.example.hellondk
アプリ名:HelloNDK
という前提で、
cd プロジェクトのホームディレクトリ/bin
javah com.example.hellondk.HelloNDK
私の環境
パッケージ名:net.n2works.hellondk
アプリ名:HelloNDK
なので
cd プロジェクトのホームディレクトリ/bin
javah net.n2works.hellondk.HelloNDK
でいけるはずです。
しかし「エラー: 'net.n2works.hellondk.HelloNDK'のクラス・ファイルが見つかりませんでした」というエラーが発生します。
今度はクラスパスを指定してみます。
javah -classpath "./classes" net.n2works.hellondk.HelloNDK
今度は「エラー: android.app.Activityにアクセスできません android.app.Activityのクラス・ファイルが見つかりません」というエラーが発生しました。
android.app.Activityのクラスファイルへのパスを設定します。
{android-sdkのパス}\platforms\android-{minSDKのversion}\data\layoutlib.jar
これでjniディレクトリにヘッダーを作成することができました。
この書籍は環境変数について全く触れられていないので問題があると思います。