android-ndk - studio - ruta ndk android
java.lang.IllegalArgumentException: No es un nombre de clase vĂ¡lido: ANDROID NDK javah (6)
después de más investigaciones ... lo hice.
establezco argumentos para
-d $ {workspace_loc: / MyProject / jni} -classpath C: / Paul / android-sdk-windows / platforms / android-17 / android.jar; $ {workspace_loc: / MyProject / bin / classes} com.myproject.MainActivity
Estoy aprendiendo a codificar Android en NDK en WINDOWS Eclipse .... estado siguiendo un Tutorial Book de Sylvain Ratabouil. Entonces estoy en Run | Herramientas externas | Configuraciones de herramientas externas ... creando una nueva configuración de programa.
Nombre: MyProject javah
Ubicación: $ {env_var: JAVA_HOME} / bin / javah.exe
Directorio de trabajo: $ {workspace_loc: / MyProject / bin}
El problema viene en argumentos ... cuando pruebo Argumentos: -d $ {workspace_loc: / MyProject / jni} com.myproject.MyActivity como dice en el libro
me sale cuando hago clic en ejecutar
Exception in thread "main" java.lang.IllegalArgumentException: Not a valid class name: –d
cuando intento $ {workspace_loc: / MyProject / jni} com.myproject.MyActivity}
yo obtengo
Exception in thread "main" java.lang.IllegalArgumentException: Not a valid class name: C:/Paul/Workspace/MyProject/jni
ACTUALIZACIÓN: pongo -classpath primero y se está ejecutando pero no puedo encontrar el archivo de clase para com.myproject
Bueno, por si acaso ...
1-> Goto (cd C: / Archivos de programa / Java / jdk1.7.0_60 / bin)
2-> C: / Archivos de programa / Java / jdk1.7.0_60 / bin> javah -jni -classpath F: / Android_OpenGLES / FibonacciNative / bin / classes -d F: / Android_OpenGLES / FibonacciNative / jni / com.example.fibonaccinative. FibLib
sin crear / usar variables de entorno ...
También dedico mucho tiempo a este problema cuando trabajo con el mencionado libro sobre Android NDK.
Tenga en cuenta lo siguiente: El nombre de clase java NO está escrito en { }
, simplemente escriba algo como com.myproject.MyActivity
El parámetro -classpath
puede recibir varias rutas divididas por punto y coma.
En mi caso, estos parámetros funcionaron:
Ubicación:
${env_var:JAVA_HOME}/bin/javah.exe
Directorio de trabajo:
${workspace_loc:/myproject/bin}
Argumentos:
-d ${workspace_loc:/myproject/jni} -classpath ${workspace_loc:/myproject/bin/classes};"C:/Eclipse/sdk/platforms/android-18/android.jar" com.myproject.MyActivity
(Por cierto: el archivo correcto Adroid.jar se hace referencia dentro del proyecto Eclipse).
Yo también enfrenté el mismo problema esta noche, encontré una manera menos tediosa de seguir ...
- como "Ubicación" configura el javah de tu sistema
- como "Directorio de trabajo" establece el directorio bin / classes del proyecto ( $ {workspace_loc: / HelloWorld / bin / classes} )
- como "Argumento" establece la carpeta jni como el directorio de salida y señala la clase en la que desea ejecutar el javah ( -d "$ {workspace_loc: / HelloWorld / jni}" com.example.helloworld.MainActivity )
NB :: No olvide el doble qoute (") alrededor de la salida en el tercer paso ( " $ {workspace_loc: / HelloWorld / jni} " )
Una imagen completa también se adjunta siguiente
Siguiendo intenté con éxito
javah com.sense.kios.Calculation
Nota: incluya el nombre del paquete.
En caso si javah no se encuentra como un comando y usted obtiene
The program ''javah'' can be found in the following packages:
* gcj-4.6-jdk
* gcj-4.7-jdk
* openjdk-7-jdk
* openjdk-6-jdk
Try: sudo apt-get install <selected package>
use la ruta directa de jdk path, en mi caso es /usr/lib/jvm/jdk1.8.0/bin/javah
.
SÍ QUE ES CORRECTO más abstracto sería
-d ${workspace_loc:/MyProject/jni} -classpath ${env_var:ANDROID_SDK_HOME}/platforms/android-16/android.jar;${workspace_loc:/MyProject/bin/classes} com.myproject.MyActivity