Javah Error android.app.Activity not found
Estoy intentando crear un archivo de cabecera .h para un proyecto simple de NDK. Uso de cygwin myprojectDIR\jni
directorio myprojectDIR\jni
, luego ejecute este comando:
javah -o com_myproject_MyActivity.h -classpath myprojectDIR\bin\classes com.myproject.MyActivity
Entonces aparece este mensaje de error:
- Cómo agregar un servicio de sistema a Android Framework
- Desbordamiento de tabla de referencia Jni
- Jni llama al método java que toma una interfaz java personalizada como parámetro
- Llamar a System.loadLibrary dos veces para la misma biblioteca compartida
- Android ICS: intento de error JNI para usar referencia local obsoleta 0x1
Error: cannot access android.app.Activity class file for android.app.Activity not found
Tengo un método nativo dentro de la clase MyActivity
, así que traté de crear una nueva clase llamada NativeAccess
(no amplía ninguna clase del androide SDK) y funcionó bien, se creó el archivo .h, ndk-build y prueba en el dispositivo donde ¡exitoso!
Así que mi problema es que necesito mis métodos nativos dentro de las actividades y servicios de Android que creo, pero no puedo hacer eso porque el comando Javah
no puede acceder a las clases desde el propio android-sdk. Tenga en cuenta que estoy utilizando (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 por adelantado
- Android NDK: ¿Cómo limpiar el código nativo después de reiniciar la actividad?
- Actualización de la interfaz de usuario de hilo de fondo utilizando código nativo enteramente (sin JNI)?
- Cómo convertir char a jstring en JNI?
- Comparar imágenes SIFT / SURF detalles en archivos .yml OpenCV?
- ¿Cómo utilizo JNI con la biblioteca AAR?
- Clases del editor de vídeo de Android
- ¿Qué es JNI Graphics o cómo usarlo?
- Android: Xamarin JNI Binding - Herencia de clase abstracta
Prueba a agregar a tu classpath:
-classpath <android-sdk-location>/platforms/android-8.jar
Lo encontré, así es como va:
javah -o com_myproject_MyActivity.h -classpath <android-sdk-location>/platforms/android-8.jar;myprojectDIR\bin\classes com.myproject.MyActivity
Pruebe lo siguiente en Eclipse,
Ir a> Ejecutar | Herramientas externas | Configuraciones de herramientas externas En el programa, cree una nueva configuración haciendo clic en el icono pequeño.
Nombralo.
La ubicación sería: C: \ Archivos de programa \ Java \ jdk1.7.0_04 \ bin \ javah.exe
El directorio de trabajo sería: $ {workspace_loc: / My_First_NDK / bin / classes} y
Argumentos sería: -classpath $ {workspace_loc: / Mi_First_NDK / bin / classes} -bootclasspath "C: \ adt-bundle-windows-x86-20140624 \ sdk \ plataformas \ android-19 \ android.jar" -v -d $ {Workspace_loc: / My_First_NDK / jni} com.mypackage.ndk.HelloNDK
Lo encontré, así es como va:
E:\workspeaceResearch\DAMMADARJNI\src>javah -classpath "E:\Software\sdk\platform s\android-19/platforms/android-8.jar"; -jni com.dammadar.jni.Home_Screen
- SMSMessage createFromPdu con formato de parámetro adicional
- Cómo obtener la foto de Facebook, el nombre completo, el género usando Facebook SDK android