¿cómo puedo agregar el archivo aidl a Android studio (desde el ejemplo de facturación en la aplicación)
Actualmente estoy migrando una aplicación Eclipse a Android Studio. Esta aplicación estaba utilizando la facturación en la aplicación.
Mi principal problema es compilar el proyecto y el archivo aidl (supongo que todos usan este archivo)
Recibo este mensaje de error:
Gradle: error: cannot find symbol class IInAppBillingService
Gradle: error: package IInAppBillingService does not exist
Así que, siguiendo algunos tutoriales, muevo este archivo desde com.mi paquete.facturación a src/main / aidl (véase esta referencia )
Pero tan pronto como lo hago, recibo este mensaje:
Gradle: Ejecución error en la tarea': xxxxxxxxxxx: compileDebugAidl'.
No se pudo ejecutar el comando: (...) C:\Users\xxxx\AndroidStudioProjects\xxxxxxProject\xxxxxxx\src\main\aidl\IInAppBillingService.aidl: 45 interfaz IInAppBillingService debe declararse en un archivo llamado com \ xxxxxxxx \ billing\IInAppBillingService.aidl.
El mensaje es claramente una contradicción con la publicación de la página de error de Google que enlacé anteriormente.
Nadie tuvo éxito en hacer que este archivo aidl funcione y puede ayudarme?
Solo para informar, algunos enlaces que seguí:
10 answers
Tal como dice el mensaje de error, necesita poner IInAppBillingService.aidl
en el directorio correcto dictado por su paquete (com.androide.Vending.facturación).
Dentro de la carpeta src/main/aidl/
que ya tiene, coloque el archivo .aidl
en com/android/vending/billing/
.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-08-21 18:03:07
Añadiendo esto como una respuesta ya que parecía ayudar a un buen número de personas.
- Crea un nuevo directorio llamado 'aidl' bajo 'src/main/'. Debería parecerse a ' src/main/aidl'.
- Añadir un nuevo paquete nombre 'com.androide.Vending.facturación' al directorio 'src/main/aidl'
- Localice la ubicación de su sdk y vaya a "sdk\extras\google\play_billing". La ubicación predeterminada para el sdk es "C:\Program Files (x86) \ Android \ android-sdk". Si personalizado lo cambió, entonces usted tendrá que averiguar la ubicación a través del sdk manager.
- Copy 'IInAppBillingService.aidl ' en el paquete creado anteriormente. Al final, debería ser similar a la imagen de abajo.
- Reconstruir el proyecto y debería estar listo.
Nota: Asegúrese de incluir la importación necesaria si su referencia no es de trabajo
import com.android.vending.billing.IInAppBillingService;
Https://issuetracker.google.com/issues/36973270
Editar Desde Comentario
Después de hacer esto, las referencias a IInAppBillingService en mi código todavía se resaltaron como errores, pero después de reconstruir la aplicación, la clase fue reconocida
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-12-30 17:39:33
El resto de publicaciones aquí no funcionaron para mí hasta que creé una nueva carpeta como se muestra aquí.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-08-24 17:31:36
- Crea un 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
Copiar
IInAppBillingService.aidl
del directorioAndroid/Sdk/extras/google/play_billing
al directorioApp_name/app/src/main/aidl/com/android/vending/billing
- Ahora siga adelante 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 android studio , haga clic enRebuild Project
. Esto generará un archivoIInAppBillingService.java
dentroApp_Name/app/build/generated/source/aidl/debug/com/android/vending/billing
. Esto resolverá el problema.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-01-28 14:51:08
Agregue este código en la compilación.gradle
android {
sourceSets {
main {
aidl.srcDirs = ['src']
}
}
}
Reconstruir e importar la clase aidl
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-06-12 14:57:20
Las respuestas anteriores se concentran en la ubicación del archivo, pero parece que ya lo ha configurado correctamente. Experimenté este mismo problema en Android Studio, pero ninguna de las respuestas enumeradas lo resolvió, y me golpeé la cabeza contra él durante una hora. Finalmente, 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 ni se incluye en ninguno de los ejemplos de código que encontrar. Si bien puede ser obvio para los desarrolladores de Java experimentados, los principiantes que solo intentan aprender su primer proyecto pueden necesitar que se indique explícitamente.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-03-19 15:10:42
Tenemos que añadir
Cree la carpeta-src/main/aidl / packagename y coloque el archivo aidl debajo de esto.
-
En el archivo aidl - mencione el nombre del paquete. paquete nombre del paquete
Ahora limpiar el proyecto, reconstruir el proyecto - Podemos el archivo java correspondiente para el aidl generado en app\build\generated\source\aidl\debug\packagename\youraidl.java
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-06-03 13:03:13
Sé que suena tan fácil, pero copio y pego desde Google sample all folder
Https://github.com/googlesamples/android-play-billing/tree/master/TrivialDrive/app/src/main
Aidl/com/android/vending / billing
Copiado en project aidl (había configurado project view en Android Studio)
Y luego limpio y reconstruyo el proyecto y encontró una referencia.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-12-03 16:00:26
He probado 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 de lo que se especificó en la configuración. De debug a release, por lo que los otros módulos no podían ver el pkg de AIDL. Cambiar de depuración a liberación y se vuelve atrás, resuelto mi problema.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-02-08 16:12:10
Reiniciar Android Studio funcionó para mí
Una segunda tontería que me llevó un tiempo. Se me cayó el código en Android Studio para permitirle crear el archivo, pero creó un .java (como se esperaba) en su lugar a .aidl Jiji, estúpido de mi parteWarning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-08-16 08:12:12