Подтвердить что ты не робот

Ошибка Javah android.app.Activity не найдена

Я пытаюсь создать заголовочный файл .h для простого проекта NDK. Используя cygwin, я перейду в каталог myprojectDIR\jni, затем выполните следующую команду:

javah -o com_myproject_MyActivity.h -classpath  myprojectDIR\bin\classes com.myproject.MyActivity

появится следующее сообщение об ошибке:

Error: cannot access android.app.Activity
class file for android.app.Activity not found

У меня есть собственный метод внутри класса MyActivity, поэтому я попытался создать новый класс под названием NativeAccess (не расширяет какой-либо класс из SDK android), и он работал нормально, файл .h был создан, ndk -строить и протестировать на устройстве, где успешно!

Итак, моя проблема заключается в том, что мне нужны мои собственные методы внутри действий и сервисов android, которые я создаю, но я не могу этого сделать, потому что команда Javah не может обращаться к классам из самого android-sdk. Обратите внимание, что я использую (Windows-7 x64), и у меня есть эти переменные среды:

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)

Заранее спасибо

4b9b3361

Ответ 1

Попробуйте добавить к вашему пути к классам:

-classpath <android-sdk-location>/platforms/android-8.jar

Ответ 2

Я нашел его, вот как оно идет:

javah -o com_myproject_MyActivity.h -classpath <android-sdk-location>/platforms/android-8.jar;myprojectDIR\bin\classes com.myproject.MyActivity

Ответ 3

Попробуйте следующее в Eclipse,

Перейдите в > Выполнить | Внешние инструменты | Конфигурации внешнего инструмента  В разделе "Программа" создайте новую конфигурацию, щелкнув маленькую иконку.

Назовите его.

Местоположение будет: C:\Program Files\Java\jdk1.7.0_04\bin\javah.exe

Рабочий каталог: ${workspace_loc:/My_First_NDK/bin/classes} и

Аргументами будут: -classpath ${workspace_loc:/My_First_NDK/bin/classes} -bootclasspath "C:\adt-bundle-windows-x86-20140624\sdk\platform\android-19\android.jar" -v -d ${workspace_loc:/My_First_NDK/jni} com.mypackage.ndk.HelloNDK

enter image description here

Ответ 4

Я нашел его, вот как оно идет:

   E:\workspeaceResearch\DAMMADARJNI\src>javah -classpath "E:\Software\sdk\platform
   s\android-19/platforms/android-8.jar"; -jni com.dammadar.jni.Home_Screen