ubicacion studio ruta r13 que ndk how android-ndk jni adt

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 ...

  1. como "Ubicación" configura el javah de tu sistema
  2. como "Directorio de trabajo" establece el directorio bin / classes del proyecto ( $ {workspace_loc: / HelloWorld / bin / classes} )
  3. 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