4

javah に問題があります。「解決済み」というエラーが表示された stakcoverflow の投稿を 4 つまたは 5 つ読みましたが、何でもうまくいきます。

私の問題:

javah コマンドを実行すると、次のエラーが発生します。

Error: cannot access android.support.v7.app.ActionBarActivity
  class file for android.support.v7.app.ActionBarActivity not found

私が試したこと:

これは私がテストしたコマンドです:

C:\Users\MyUser\workspace3\PruebaApp\jni\include>javah -classpath ../../bin/classes;C:\Users\MyUser\AppData\Local\Android\sdk\platforms\android-14\android.jar -o ACK.h com.test.prueba.ACK

ディレクトリを区切るために、「/」と「\」のみを使用して同じコマンドを試しました。

Android-11、Android-14、およびAndroid-21で試しました。

プロジェクトに次の外部 jar を追加しようとしました: 「android-support-v4.jar」および「android-support-v7-appcompat.jar」

ここのように、Eclipseで外部ビルド構成を作成しようとしました: Javah Error android.app.Activity not found

使用しているツール

Windows 8.1でEclipse Junoを使用しています。

コマンドを実行したフォルダーは {project_dir}/jni/include です。コマンドを正しく変更して、さまざまなフォルダーから試しました。

ネイティブ関数を含む .java ファイルは、パッケージ内の「ACK.java」です: 「com.test.prueba」

プロジェクトでは、私が使用している Android ライブラリは Android 5.0.1 です。

私に何ができる?前もって感謝します。

4

3 に答える 3

9

Java クラスで宣言されたネイティブ メソッドは、JNI ヘッダーを生成するのに十分です。あなたの例では、コマンドjavahのオプション-classpathはあまり役に立ちません。は、 JNIcom/test/prueba/ACK.javaヘッダーを生成するために処理するクラスであるとします。作業ディレクトリを に変更し{project_dir}\src、コマンドを実行できます

javah com.test.prueba.ACK

対応する JNI ヘッダー ファイルcom_test_prueba_ACK.hが現在のディレクトリに作成されます。

于 2015-02-09T09:33:37.850 に答える
2

classpath パラメータにはandroid-support-v7-appcompat.jarとのフルパスを記述する必要があります。android-support-v4.jar

于 2015-02-23T21:32:35.700 に答える