Estoy tratando de crear un archivo de encabezado .h para un proyecto NDK simple. Utilizando cygwin hojeo a myprojectDIR\jni
directorio, a continuación, ejecutar este comando:Javah Error android.app.Activity no encontrado
javah -o com_myproject_MyActivity.h -classpath myprojectDIR\bin\classes com.myproject.MyActivity
continuación, aparece este mensaje de error:
Error: cannot access android.app.Activity
class file for android.app.Activity not found
Tengo un método nativo dentro MyActivity
clase, por lo que trató de crear un nuevo clase llamada NativeAccess
(no extiende ninguna clase desde el SDK de Android) y funcionó bien, se creó el archivo .h, ndk-build y prueba en el dispositivo donde tuvo éxito!
Así que mi problema es que necesito mis métodos nativos dentro de las actividades y servicios de Android que creo, pero no puedo hacerlo porque el comando Javah
no puede acceder a las clases desde el propio android-sdk. Tenga en cuenta que estoy usando (Windows 7 x64) y tengo estas variables de entorno:
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)
Gracias de antemano
Deberá incluir los tarros de la plataforma android en el classpath que utiliza con esta herramienta. Si su tarea es particularmente simple, puede crear los encabezados a mano, usando las muestras de ndk como guía. –
Gracias Chris, pensé en agregar el classpth de los jar de android con la herramienta javah, pero no pude encontrar cómo hacerlo ... –