¿Cómo puedo agregar el archivo aidl al estudio Android (desde el ejemplo de facturación en la aplicación)
Actualmente estoy migrando una aplicación de Eclipse a Android Studio. Esta aplicación utilizaba la facturación de la aplicación.
Mi problema principal es compilar el proyecto y el archivo aidl (supongo que todos usan este archivo )
- Creación de una aplicación para Android con Jenkins
- Android Studio marca R en rojo con el mensaje de error "no se puede resolver el símbolo R", pero la generación tiene éxito
- AndroidStudio Gradle: cómo configurar buildTypes, y comprobar que buildType al construir?
- Cómo deshabilitar lint abortOnError en Android Gradle Plugin desde el nivel superior del directorio de proyectos múltiples
- Error: Error de ejecución para la tarea ': app: validateExternalOverrideSigning'
Recibo este mensaje de error:
Gradle: error: cannot find symbol class IInAppBillingService Gradle: error: package IInAppBillingService does not exist
Por lo tanto, siguiendo algunos tutoriales, muevo este archivo de com.mypackage.billing a src / main / aidl (ver esta referencia )
Pero tan pronto como lo hago, recibo este mensaje:
Gradle: Error de ejecución para la tarea ': xxxxxxxxxxx: compileDebugAidl'.
Error al ejecutar el comando: (…) Interfaz IInAppBillingService debe declararse en un archivo denominado com \ xxxxxxxx \ billing \ IInAppBillingService (C: \ Users \ xxxx \ AndroidStudioProjects \ xxxxxxProject \ xxxxxxx \ src \ main \ aidl \ IInAppBillingService.aidl: .aidl.
El mensaje es claramente una contradicción con el post de la página de errores de Google que he vinculado anteriormente.
¿Cualquier persona suceeded para hacer este archivo del aidl para trabajar y puede ayudarme?
Sólo para informar, algunos enlaces que seguí:
- Http://tools.android.com/tech-docs/new-build-system/user-guide
- Http://developer.android.com/guide/components/aidl.html
- Ejecutar zipalign con la recompresión zopfli después de construir APK desde la línea de comandos para hacerlo más pequeño
- Android Studio 2.1.1: "no se detectaron dispositivos usb ni emuladores en ejecución"
- Error: no se puede encontrar el símbolo en Android gradle library module unit test
- Multi sabor app basado en la biblioteca de múltiples sabores en Android Gradle
- ¿Por qué Android Studio no reconoce esta biblioteca de dependencias?
- Gradle dependencias diferencia entre compilar, apk proyecto, proyecto de compilación, proporcionado, proyecto de implementación
- Biblioteca de edificio con gradle que está en un directorio de hermanos
- Permisos de solo prueba de Android con gradle
Así como el mensaje de error dice, es necesario poner IInAppBillingService.aidl
en el directorio correcto dictado por su paquete (com.android.vending.billing).
Dentro de la carpeta src/main/aidl/
que ya tiene, coloque el archivo .aidl
en com/android/vending/billing/
.
Añadiendo esto como una respuesta ya que parecía ayudar a bastantes personas.
- Cree un nuevo directorio llamado 'aidl' en 'src / main /'. Debería parecer ' src / main / aidl '.
- Añada un nuevo nombre de paquete ' com.android.vending.billing ' al directorio ' src / main / aidl '
- Busque su ubicación sdk y vaya a "sdk \ extras \ google \ play_billing". La ubicación predeterminada para el sdk es "C: \ Archivos de programa (x86) \ Android \ android-sdk". Si la costumbre cambió, entonces tendrá que averiguar la ubicación a través del gestor sdk.
- Copie 'IInAppBillingService.aidl' en el paquete creado anteriormente. En el extremo, debe parecer similar a la imagen abajo.
- Reconstruir el proyecto y debe ser bueno para ir.
Nota: Asegúrese de incluir la importación necesaria si su referencia no funciona
import com.android.vending.billing.IInAppBillingService;
- Crear nuevo directorio bajo
src/main
llamadoaidl
- Haga clic derecho en el directorio
aidl
, seleccionenew->add package
-
Introduzca el nombre del paquete
com.android.vending.billing
-
Copie
IInAppBillingService.aidl
desde el directorioAndroid/Sdk/extras/google/play_billing
al directorioApp_name/app/src/main/aidl/com/android/vending/billing
- Ahora continúe con la codificación de facturación InApp y al definir los servicios relacionados con InApp obtendrá un error
can not resolve symbol IInAppBillingXXXXXX
- Ahora vaya a
Build
desde el menú de estudio de Android, haga clic enRebuild Project
. Esto generará el archivoIInAppBillingService.java
dentro deApp_Name/app/build/generated/source/aidl/debug/com/android/vending/billing
. Esto resolverá el problema.
El resto de los mensajes aquí no funcionó para mí hasta que creé una nueva carpeta como se muestra aquí.
Las respuestas anteriores se concentran en la ubicación del archivo, pero parece que ya tenías que establecer correctamente. He experimentado este mismo problema en Android Studio, pero ninguna de las respuestas de la lista lo resolvió, y me golpeó la cabeza contra ella durante una hora. Eventualmente, me di cuenta de que me faltaba una importación obvia:
import com.android.vending.billing.IInAppBillingService;
Una vez que agregué que resolvió este mensaje de error.
Esta importación no se menciona en ninguno de los documentos de facturación de Google o se incluye en ninguno de los ejemplos de código que encontré. Si bien puede ser obvio para los desarrolladores de Java con experiencia, los principiantes sólo tratando de aprender su primer proyecto puede necesitar explicitamente señalado.
Añadir este código en build.gradle
android { sourceSets { main { aidl.srcDirs = ['src'] } } }
Reconstruir e importar la clase de ayuda
Necesitamos agregar
-
Cree la carpeta – src / main / aidl / packagename y coloque el archivo aidl bajo este.
-
En el archivo aidl – mencione el nombre del paquete. Nombre del paquete de paquete
Ahora limpiar el proyecto, reconstruir el proyecto – Podemos el correspondiente archivo java para el aidl generado en la aplicación \ build \ generated \ source \ aidl \ debug \ packagename \ youraidl.java
He intentado todas las soluciones, pero el problema era que Android Studio había compilado, con cualquier razón aparente, en un tipo de compilación diferente del módulo que contiene los paquetes AIDL que fue especificado por la configuración. De la depuración a la liberación , por lo que los otros módulos no podía ver el pkg AIDL. Cambiar de depurar a liberar y se vuelve atrás, resolvió mi problema.
Reiniciar Android Studio funcionó para mí
Una segunda tontería que me llevó un tiempo. Dejé el código en Android Studio para permitirle crear el archivo, pero creó un .java (como se esperaba) en lugar de un .aidl Jiji, estúpido de mí