2011-10-03 8 views
12

Tengo problemas para generar el archivo de encabezado C para JNI usando javah.android - javah no encuentra mi clase

Aquí está la secuencia de comandos que utilizo mientras está de pie en el directorio <project-dir>\bin:

javah -classpath C:\PROGRA~2\Android\android-sdk\platforms\android-8\android.jar com.test.JniTest 

Como regreso me sale:

ERROR: Could not find class file for 'com.test.JniTest'. 

A pesar de que la clase JniTest sin duda está en \com\test.

¿Qué estoy haciendo mal?

Respuesta

18

Especifica la ruta de clases para que contenga soloandroid.jar.

También debe incluir la ubicación donde se almacenan sus clases. En su caso, es el directorio actual, por lo que debe usar . (separado por ; en Windows). La invocación debe tener este aspecto:

javah -classpath C:\PROGRA~2\Android\android-sdk\platforms\android-8\android.jar;. com.test.JniTest 
+1

limitarse a añadir, al parecer, usted tiene que estar fuera del directorio del archivo real. No puedes simplemente especificar el nombre del archivo. – L7ColWinters

+0

Error: ninguna clase especificada errror no puede entrar en android.jar –

10

debe cambiar el directorio para <project-dir>\bin\classes; a continuación, ejecute el siguiente comando:

javah -classpath C:\PROGRA~2\Android\android-sdk\platforms\android-8\android.jar;. com.test.JniTest 


estoy usando el siguiente archivo de comandos para generar encabezados: jHdr.cmd en mi escritorio:

@echo on 
SET PLATFORM=android-8 
SET ANDROID_SDK_ROOT=C:\Android\android-sdk 
SET PRJ_DIR=D:\Workspaces\sqLite\raSQLite 
SET CLASS_PKG_PREFIX=ra.sqlite 
cd %PRJ_DIR%\bin\classes 
javah -classpath %ANDROID_SDK_ROOT%\platforms\%PLATFORM%\android.jar;. %CLASS_PKG_PREFIX%.%~n1 
pause 


ajustar las variables a sus necesidades ...
pon este archivo en tu escritorio, luego arrástralo desde eclise a jHdr.cmd, el resultado está bajo el directorio% PRJ_DIR% \ bin \ classes

16

Si está en Linux o MAC-OS, utilice ":" para separar los directorios de classpath en lugar de ";" caracteres: Ejemplo:

javah -cp /Users/Android/android-sdk/platforms/android-xy/android.jar:. com.test.JniTest 
+0

que: en Linux me salvó: P – Sundeep1501

Cuestiones relacionadas