2011-10-23 23 views
1

AndroidのJavaファイルのいずれかでFindClassを使用しようとしていますが、クラスが見つかりません。Android JNI:FindClass()がクラスを見つけることができません

私は、次のコード(C++)を使用:Eclipseで

jclass clsLocal = env->FindClass("com/device/client/HostConnection"); 

を、SRCで、私は、パッケージcom.device.clientとその中のファイルHostConnection.javaを持っています。

エラーは-classpathと関係があります。私はそれが問題であるかどうかは完全にはわかりません。これは、Eclipseによって生成された.classpathの猫です:

<?xml version="1.0" encoding="UTF-8"?> 
<classpath> 
    <classpathentry kind="src" path="src"/> 
    <classpathentry kind="src" path="gen"/> 
    <classpathentry kind="con" path="com.android.ide.eclipse.adt.ANDROID_FRAMEWORK"/> 
    <classpathentry kind="output" path="bin"/> 
</classpath> 

ディレクトリのsrc /クライアントを含むデバイス/、/含むディレクトリのcom /、含まれています

[email protected]:~/workspace/DeviceClient/src/com/device/client$ ls 
HostConnection.java Main.java ServerConnection.java SettingsLayout.java 

は、私が作成しようとしましたが以下のような.classpathにルール:

<classpathentry kind="src" path="src/com/device/client"/> 

が、問題としてEclipseのスポット、それは(SRC /でネストされた)ので、私はパスが=「srcが/」すでにすべてのそれらのサブディレクトリの世話をすると信じています。

私はそれが動作していないか分かりません。

誰でもお手伝いできますか?

+0

私のスレッドFindClass()は動作しませんが、ネイティブメソッドでは、それは問題のコード行ではないが、私はそれを置いたがないことに気づいた。それがなぜなのか分かりません。 – Jary

+0

あなたの問題を発見しましたか? JNIEnvはどのようなものを使用していますか? – Geoffroy

+0

問題は修正されました、私は新しい投稿を作成します。私が間違った場所でこのメソッドを呼び出していたので、クラスパスは正常でした。 – Jary

答えて

1

問題は、私が新しいスレッドを開始し、そのスレッドでコードを実行していたことでした。

私はJavaの関数内にクラスを持っているはずです。それはうまくいきます。

関連する問題