Mi pregunta se refiere al uso de aidl.exe (en un sistema Windows) desde la línea de comandos. Esta pregunta no tiene nada que ver con Eclipse, Netbeans, etc.¿Cómo uso la herramienta AIDL desde la línea de comandos usando el código de muestra SDK?
Se incluye con el SDK de Android son los siguientes tres archivos de definición de AIDL:
IRemoteService.aidl IRemoteServiceCallback.aidl ISecondary.aidl
ubicados en el siguiente directorio:
C: \ android-sdk-windows \ plataformas \ android-2.1 \ samples \ ApiDemos \ src \ com \ ejemplo \ API \ android \ app
En aras de la simplicidad, copié aidl.exe en el directorio anterior. Entonces, desde una ventana de la consola, he utilizado con éxito los siguientes dos comandos para generar archivos .java:
C: \ Android-Project \ ApiDemos \ src \ com \ ejemplo \ androide \ API \ app> AIDL IRemoteServiceCallback.aidl C: \ Android-project \ ApiDemos \ src \ com \ example \ android \ apis \ app> aidl ISecondary.aidl
Al invocar estos comandos se producen los archivos IRemoteServiceCallback.java e ISecondary.java, respectivamente. Hasta aquí todo bien.
Noto que ambos archivos .aidl son simples; no incluyen declaraciones de 'importación'.
El archivo .aidl restante, IRemoteService.aidl, Qué incluye el siguiente declaración de importación en la línea 19: com.example.android.apis.app.IRemoteServiceCallback
importación;
El problema surge cuando se ejecuta la herramienta AIDL en este archivo:
C:\Android-project\ApiDemos\src\com\example\android\apis\app>aidl IRemoteService.aidl
Si lo hace, el siguiente mensaje de error que se debe imprimir en la ventana de la consola:
IRemoteService.aidl: 19: couldn 't encuentra importación para la clase com.example.android.apis.app.IRemoteServiceCallback
La herramienta AIDL evidentemente no pudo encontrar el archivo IRemoteServiceCallback.aidl en el mismo directorio en el que se estaba ejecutando. De acuerdo con el mensaje "uso" de la herramienta AIDL, hay un comando que al parecer se puede utilizar para resolver este problema:
-I<DIR> search path for import statements.
El problema: no he sido capaz de especificar -I de tal manera que se evite el mensaje de error y hacer que la herramienta AIDL genere un archivo .java del archivo .aidl con una instrucción 'import'. (Nota: He definido la variable de entorno 'camino' de Windows al directorio actual.) Aquí hay algunas variaciones que he probado:
-Ic:\com\example\android\apis\app
-Ic:/com/example/android/apis/app
-I.\
-I.
Debo estar perdiendo algo simple. Sorprendentemente, aunque he visto variaciones de esta pregunta publicadas en varios lugares, todavía tengo que ver una respuesta o cualquier documentación sobre el uso de la línea de comandos de AIDL (que no sea la información de USO de aidl.exe). Puede alguien ponerme al tanto?
Gracias, Matt
Creo que este es el único lugar en Internet que está documentado. Gracias, eres un héroe. – benkc