0

私はWindows7を使用しており、Cygwin1.7.13でjavahを使用しています。現在、AndroidプロジェクトのネイティブC++ファイルのヘッダーファイルを生成しようとしています。

プロジェクトのルートで実行します。実行しているコマンドは次のとおりです。

walb@nought /cygdrive/c/Users/walb/stuff/work/workspace/SoundBites
$ javah -verbose -d jni/ -classpath bin/classes uk.co.biogen.SoundBites.activity.SoundBitesActivity

その結果:

error: cannot access uk.co.biogen.SoundBites.activity.SoundBitesActivity
class file for uk.co.biogen.SoundBites.activity.SoundBitesActivity not found
javadoc: error - Class uk.co.biogen.SoundBites.activity.SoundBitesActivity not found.
[ Search Path: C:\Program Files\Java\jdk1.6.0_22\jre\lib\resources.jar;C:\Program Files\Java\jdk1.6.0_22\jre\lib\rt.jar;C:\Program Files\Java\jdk1.6.0_22\jre\lib\sun
rsasign.jar;C:\Program Files\Java\jdk1.6.0_22\jre\lib\jsse.jar;C:\Program Files\Java\jdk1.6.0_22\jre\lib\jce.jar;C:\Program Files\Java\jdk1.6.0_22\jre\lib\charsets.j
ar;C:\Program Files\Java\jdk1.6.0_22\jre\classes\bin/classes ]
Error: No classes were specified on the command line.  Try -help.

私が読んだトピックのほとんどは、私が正しい議論をしていることを示しています。エラーメッセージの興味深い部分は次のとおりです。 -classpath

[ Search Path: C:\Program Files\Java\jdk1.6.0_22\jre\lib\resources.jar;C:\Program Files\Java\jdk1.6.0_22\jre\lib\rt.jar;C:\Program Files\Java\jdk1.6.0_22\jre\lib\sun
rsasign.jar;C:\Program Files\Java\jdk1.6.0_22\jre\lib\jsse.jar;C:\Program Files\Java\jdk1.6.0_22\jre\lib\jce.jar;C:\Program Files\Java\jdk1.6.0_22\jre\lib\charsets.j
ar;C:\Program Files\Java\jdk1.6.0_22\jre\classes\bin/classes ]

そのリストの最後のパスはですC:\Program Files\Java\jdk1.6.0_22\jre\classes\bin/classes。これは、javahが引数を完全に間違って解釈していることを示しています。私が役立つと思う唯一のことは、javahを呼び出す別の方法ですが、そのディレクトリをPATHに追加することが、私が考えることができる唯一の手段です。

4

2 に答える 2

2

ネイティブ Android で必要なものを実装しました。何が起こっているのかを統合して理解するのは簡単ですが、速度が犠牲になり、そもそも私が望んでいたことを実際に実行できます。

于 2012-12-10T13:00:12.277 に答える
1

これは機能しますか ( -classpath 引数のパスの前にセミコロンを追加します):

javah -verbose -d jni/ -classpath ;bin/classes   uk.co.biogen.SoundBites.activity.SoundBitesActivity
于 2012-05-29T14:02:34.223 に答える