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:
- Uso de jni en Android: UNsatisfiedLinkError
- Mantener los métodos Java llamados desde Android JNI
- No se pudo cargar libfoo: findLibrary returned null
- Jni Tutorial para android
- Rellenar los datos en un mapa de bits de Android tan pronto como sea posible desde C
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
- No se puede hacer JNI llamar desde c ++ a java en android lollipop usando jni
- Cómo eliminar soporte nativo de un proyecto de Android en eclipse porque eclipse está mostrando errores en jni?
- JNA para android
- Set / Get Java List <> del código C
- Integración o compilación de instrucciones para libjpeg-turbo en Android
- Llamar a un método java desde c ++ en Android
- Imprimir el seguimiento de la pila C en Android 5 / Lolipop
- Acerca de llamar método nativo en android
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