java.lang.IllegalArgumentException: No es un nombre de clase válido: ANDROID NDK javah

Paul Asiimwe 08/22/2017. 6 answers, 9.039 views
android-ndk android-ndk jni adt

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.

Name: 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

1 Comments
Guilherme 08/31/2014
Es gracioso, esto no funcionó para mí. Estoy en mac Esto resolvió stackoverflow.com/questions/9200373/...

6 Answers


Paul Asiimwe 07/13/2013.

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


Julian 07/22/2014.

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:

Location:

$NO 

Working Directory:

$NO 

Arguments:

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


community wiki 12/20/2014.

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 ( $NO )
  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 ( "$NO )

Una imagen completa también se adjunta siguiente

Los 3 pasos en una sola imagen


Saket 06/29/2014.

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


CoDe 08/12/2015.

Siguiendo intenté con éxito

javah com.sense.kios.Calculation 

Note: Include package name.

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  

use la ruta directa de jdk path, en mi caso es /usr/lib/jvm/jdk1.8.0/bin/javah .


Dhiraj Himani 07/29/2017.

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 

Related questions

Hot questions

Language

Popular Tags