Interfaz Nativa
Publicado por Alejandro A. Llerandi (13 intervenciones) el 08/03/2011 23:19:43
Hola, estoy trabajando con un lector de tarjetas sin contacto, para ser más preciso, estoy usando el lector ACS ACR122U.
Para probar cómo desarrollar una aplicación para ese dispositivo he creado un pequeño proyecto en donde el objetivo es listar los lectores conectados a la PC, seleccionar uno y conectarse a ese.
Para establecer una conexión con el dispositivo el fabricante provee una .dll y 2 clases de Java.
Mi proyecto es muy sencillo, cuenta con 3 clases: "ACSModule.java", "JacspcscLoader.java" y "vtnPrueba.java". Las 2 primeras clases son las provistas por el fabricante y la tercera es la clase que creé para hacer las pruebas.
El problema es el siguiente: si coloco estas 3 clases en el <default package> del proyecto, al ejecutar la aplicación corre de mil maravillas =). Pero si muevo las 3 clases a otro paquete (ej: PruebaLector) y ejecuto la aplicación, cuando la aplicación va a hacer uso de los métodos de la librería .dll, me arroja la siguiente excepción:
java.lang.UnsatisfiedLinkError: PruebaLector.JacspcscLoader.SCardEstablishContext(IIII)I
at PruebaLector.JacspcscLoader.SCardEstablishContext(Native Method)
Es como si no encontrara la función a la que está llamando, pero lo único que hago es mover las clases a otro paquete.
Debo mencionar que no tengo acceso al código de la librería .dll y que, por razones de organización, necesito poner esas clases en otro paquete distinto al por defecto.
La verdad estoy muy desconcertado con esto. Así que agradecería muchísimo si alguien pudiera responderme.
Desde ya muchas gracias =)
Para probar cómo desarrollar una aplicación para ese dispositivo he creado un pequeño proyecto en donde el objetivo es listar los lectores conectados a la PC, seleccionar uno y conectarse a ese.
Para establecer una conexión con el dispositivo el fabricante provee una .dll y 2 clases de Java.
Mi proyecto es muy sencillo, cuenta con 3 clases: "ACSModule.java", "JacspcscLoader.java" y "vtnPrueba.java". Las 2 primeras clases son las provistas por el fabricante y la tercera es la clase que creé para hacer las pruebas.
El problema es el siguiente: si coloco estas 3 clases en el <default package> del proyecto, al ejecutar la aplicación corre de mil maravillas =). Pero si muevo las 3 clases a otro paquete (ej: PruebaLector) y ejecuto la aplicación, cuando la aplicación va a hacer uso de los métodos de la librería .dll, me arroja la siguiente excepción:
java.lang.UnsatisfiedLinkError: PruebaLector.JacspcscLoader.SCardEstablishContext(IIII)I
at PruebaLector.JacspcscLoader.SCardEstablishContext(Native Method)
Es como si no encontrara la función a la que está llamando, pero lo único que hago es mover las clases a otro paquete.
Debo mencionar que no tengo acceso al código de la librería .dll y que, por razones de organización, necesito poner esas clases en otro paquete distinto al por defecto.
La verdad estoy muy desconcertado con esto. Así que agradecería muchísimo si alguien pudiera responderme.
Desde ya muchas gracias =)
Valora esta pregunta


0