#android_ndk #android #java
При запуске javah -jni команда наотрез отказывается находить нужный класс: $PROJECT_DIRECTORY/bin$ javah -jni bt.nativeclient.BtnativeActivity error: cannot access bt.nativeclient.BtnativeActivity class file for bt.nativeclient.BtnativeActivity not found javadoc: error - Class bt.nativeclient.BtnativeActivity not found. Error: No classes were specified on the command line. Try -help Мой класс java имеет аддрес: $PROJECT_DIRECTORY/src/bt/nativeclient/BtnativeActivity.java и имеет вид: package bt.nativeclient; import android.app.Activity; import android.os.Bundle; import android.widget.TextView; public class **BtnativeActivity** extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); TextView tv = new TextView(this); tv.setText( stringFromJNI() ); setContentView(tv); } public native String stringFromJNI(); static { System.loadLibrary("hello-jni"); } } Я пробовал запускать javah из: $PROJECT_DIRECTORY/bin, $PROJECT_DIRECTORY/src, просто из $PROJECT_DIRECTORY. Я пробовал специфицировать путь для поиска класса через опцию -classpath: $PROJECT_DIRECTORY/src javah -classpath :. bt.nativeclient.BtnativeActivity Более того, если включить опцию -verbose команда javah говорит, что она исказала мой класс в той директории, где этот самый класс она должна была найти: $PROJECT_DIRECTORY **javah -verbose -classpath :./src -jni** **bt.nativeclient.BtnativeActivity** error: cannot access bt.nativeclient.BtnativeActivity class file for bt.nativeclient.BtnativeActivity not found javadoc: error - Class bt.nativeclient.BtnativeActivity not found. [ **Search Path**: /usr/lib/jvm/java-6-openjdk/jre/lib/resources.jar:/usr/lib/jvm/java-6-openjdk/jre/lib/rt.jar:/usr/lib/jvm/java-6-openjdk/jre/lib/sunrsasign.jar:/usr/lib/jvm/java-6-openjdk/jre/lib/jsse.jar:/usr/lib/jvm/java-6-openjdk/jre/lib/jce.jar:/usr/lib/jvm/java-6-openjdk/jre/lib/charsets.jar:/usr/lib/jvm/java-6-openjdk/jre/lib/netx.jar:/usr/lib/jvm/java-6-openjdk/jre/lib/plugin.jar:/usr/lib/jvm/java-6-openjdk/jre/lib/rhino.jar:/usr/lib/jvm/java-6-openjdk/jre/lib/modules/jdk.boot.jar:/usr/lib/jvm/java-6-openjdk/jre/classes/:**./src** ] Я перепробовал все возможные комбинации, но не нашел решения. Мне кажется, я упустил какую-то маленькую деталь по своей неопытности, может кто-нибуть помочь мне, пожалуйста?
Ответы
Ответ 1
Надо указывать пусть к .class файлу, они не в bin а в bin\classes. Класспас указывает не на ваш исходних а на дополнительные библиотеки, если их нет, то просто из папки bin\classes вызовите команду >javah <пакет>.<пакет>.<класс> Должно работать.
Комментариев нет:
Отправить комментарий