Próbuję utworzyć plik nagłówkowy .h dla prostego projektu NDK. Korzystanie Cygwin mogę przeglądać myprojectDIR\jni
katalogu, a następnie wykonać polecenie:Błąd Javah android.app.Activity nie znaleziony
javah -o com_myproject_MyActivity.h -classpath myprojectDIR\bin\classes com.myproject.MyActivity
następnie pojawia się ten komunikat o błędzie:
Error: cannot access android.app.Activity
class file for android.app.Activity not found
Mam rodzimych metodę wewnątrz MyActivity
klasy, więc starałem się stworzyć nową klasa o nazwie NativeAccess
(nie rozszerza żadnej klasy z android SDK) i działała dobrze, plik .h został utworzony, ndk-build i przetestować na urządzeniu, gdzie się powiodło!
Moim problemem jest to, że potrzebuję swoich metod natywnych wewnątrz działań i usług Androida, które tworzę, ale nie mogę tego zrobić, ponieważ polecenie Javah
nie może uzyskać dostępu do klas z samego android-sdk. Proszę zauważyć, że używam (Windows 7 x64) i mam te zmienne środowiskowe:
ANDROID_NDK : C:\Android\android-ndk-r7b
ANDROID_SDK : C:\Android\android-sdk
ANT_HOME : C:\ANT\apache-ant-1.8.3
JAVA_HOME : C:\Program Files\Java\jdk1.7.0_02
PATH : %JAVA_HOME%\bin;%ANDROID_SDK%\tools;%ANDROID_SDK%\platform-tools;%ANDROID_NDK%;%ANT_HOME%\bin; (other unrelated stuff)
góry dzięki
Musisz użyć słoika (platform) platformy Android w ścieżce klas, której używasz z tym narzędziem. Jeśli twoje zadanie jest szczególnie proste, możesz po prostu utworzyć nagłówki ręcznie, korzystając z przykładów ndk jako przewodnika. –
Dzięki Chris, zastanawiałem się nad dodaniem klasy narzędzi do androida za pomocą narzędzia java, ale nie mogłem tego znaleźć .. –