2012-02-16 6 views
2

私は1インチ前に動かない時間と時間を費やしました。私は何度もプロジェクトをやり直して、他には何も残っていない。ここの誰かが何らかの方向を指摘してくれることを願っています。 LinuxのEclipseのIDEパネルでAndroid NDK:Eclipseのパラメータとjavah

>ファイル名を指定して実行>外部ツール>外部ツールの構成:

Name: Dev javah 
Tab [main]: 
* location: /usr/java/jdk1.6.0_25/bin/javah 
* working directory: ${workspace_loc:/Dev/bin} 
* Arguments: ?? 

私が試してみました:

* Arguments: -d ${workspace_loc:/Dev/jni} com.dev.DevActivity ${project_classpath:Dev} com.pkgpub.DevActivity 

私を与える:

1 error 
javadoc: error - Illegal package name: "/home/user/dev/Dev/bin/classes" 

も試しました:

与え

...

error: cannot access com.dev.DevActivity 
class file for com.dev.DevActivity not found 
javadoc: error - Class com.dev.DevActivity not found. 
Error: No classes were specified on the command line. Try -help. 

と同様に - 私与え

* Arguments: -d ${workspace_loc:/Dev/jni} com.pkgpub.DevActivity 

error: cannot access com.pkgpub.DevActivity 
class file for com.pkgpub.DevActivity not found 
javadoc: error - Class com.pkgpub.DevActivity not found. 
Error: No classes were specified on the command line. Try -help. 

をしかし、私は実行すると:

which javah 
/usr/bin/which: no javah in (/usr/lib64/qt-3.3/bin:/usr/lib64/ccache:/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/user/android-sdks/tools:/home/user/android-sdks/platform-tools:/opt/android/android-ndk-r7:/home/user/.local/bin:/home/user/bin:/home/user/android-sdks/tools:/home/user/android-sdks/platform-tools:/opt/android/android-ndk-r7:/home/user/android-sdks/tools:/home/user/android-sdks/platform-tools:/opt/android/android-ndk-r7) 

質問は... javahはEclipse NDKには見えないので、プロジェクトがコンパイルされていないか、何かが欠けているというパラメータの詳細のためにプロジェクトがコンパイルされていませんか?そのような場合、どうやって修正するのですか?

ありがとうございました。あなたの提案に感謝の男 -

答えて

2

お試しください!ここで

は、コンパイルプロセスのためのjavah側を解決する、働いていたパラメータです:

-d ${workspace_loc:/Dev/jni} com.pkgpub.Dev -classpath ${workspace_loc:/Dev/bin/classes/} com.pkgpub.Dev 

pkgpubは、パッケージ名で、デベロッパーはプロジェクト名です。プロジェクトには\ src \ Dev.javaというファイルがあります。 \ jni \ Dev.c; \ jni \ Dev.h; \ bin ... \ pkgpub \ Dev.classに移動します。

これで、適切な内容のファイルjni/com_pkgpub_Dev.hが生成されます。どちらが素晴らしいです!

しかし、ndk-buildはまだ完全にはリンクしていないので、com_pkgpub_Dev.cファイルは生成されません。だから、プロジェクト>プロジェクトのビルドから - メッセージが来る:

**** Build of configuration Build (GNU) for project Dev **** 
ndk-build 
make: *** No rule to make target `jni/com_pkgpub_Dev.c', needed by `obj/local/armeabi/objs/dev/com_pkgpub_Dev.o'. Stop. 
**** Build Finished **** 

いくつかのパラメータは、ファイル/jni/Android.mkから欠落しなければならないように聞こえるこのメッセージから:

LOCAL_PATH := $(call my-dir) 
include $(CLEAR_VARS) 
LOCAL_CFLAGS := -DHAVE_INTTYPES_H 
LOCAL_MODULE := dev 
LOCAL_SRC_FILES := com_pkgpub_Dev.c Dev.c 
include $(BUILD_SHARED_LIBRARY) 

それを解決するには欠落しているファイル "jni/com_pkgpub_Dev.c"を作成するだけです。このファイルの内容は、ファイル "jni/com_pkgpub_Dev.h"に含まれる自動生成コードに基づいて手動で作成する必要があります。

今すぐ動作します。 Android用

+0

おかげで私のために働いたあなたが何を意味するか、それをですか? ... *引数:-d $ {workspace_loc:/ Dev/jni} com.dev.DevActivity $ {project_classpath:Dev/bin/classes} com.pkgpub.DevActivity .....これは動作しないためです。 – ThreaderSlash

+0

私はjavahをLinuxコンソールから実行しています。ちょっと私は、-classpathと-bootclasspathという2つの異なるパラメータを指定します。最初はjavahに、Javaクラスを探す場所は2番目にjava_sdkクラスを探す場所です(私は引数としてアンドロイドジャーへのパスを渡します)。たぶん私はあなたの質問を誤解しました。編集:引数を変更した後、エラーはまだ同じですか? – Blackbelt

+0

パラメータを実行中...引数:-d $ {workspace_loc:/ Dev/jni} com.dev.DevActivity $ {project_classpath:Dev/bin/classes} com.pkgpub.DevActivity ...エラーは次のように変更されます。/- "Dev javahを起動中"の内部エラーが発生しました。 プロジェクトのパスには1つのセグメントのみが必要です。 // – ThreaderSlash

0

@BlackBeltをjavahがするパラメータとして

-classpath bin/classes

を追加

+0

あなたは大歓迎です... ihmo bashはより良いです – Blackbelt

+1

引数: " - d $ {workspace_loc:/ MyProject/jni} com.myproject.MyActivity -classpath $ {workspace_loc:/ MyProject/bin/classes}"これでEclipseは持続します-classpathを追加しようとすると例外が発生します。java.lang.IllegalArgumentException:有効なクラス名ではありません:-classpath – Maxim

+0

これは動作しません。エラーが表示されます。エラー:com.NDK.android_example2にアクセスできません com.NDK.android_example2のクラスファイルが見つかりません javadoc:error - クラスcom.NDK.android_example2が見つかりません。 –

1

特別:右project_location/bin/classesなどのビンの後

使用クラス、これは... LinuxのFedoraの

javah -d /var/www/project/jni/ -classpath /var/www/project/bin/classes/ com.android.TestClass 
関連する問題