Actualmente estoy migrando una aplicación Eclipse a Android Studio. Esta aplicación estaba usando la facturación en la aplicación.
Mi principal problema es compilar el proyecto y el archivo de ayuda (supongo que todos usan este archivo )
Me sale este mensaje de error:
Gradle: error: cannot find symbol class IInAppBillingService
Gradle: error: package IInAppBillingService does not exist
Entonces, siguiendo algunos tutoriales, muevo este archivo de com.mypackage.billing a src / main / aidl (vea esta referencia )
Pero tan pronto como hago eso, recibo este mensaje:
Gradle: la ejecución falló para la tarea ': xxxxxxxxxxx: compileDebugAidl'.
Error al ejecutar el comando: (...) C: \ Users \ xxxx \ AndroidStudioProjects \ xxxxxxProject \ xxxxxxx \ src \ main \ aidl \ IInAppBillingService.aidl: 45 interface 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 he vinculado anteriormente.
¿Alguien logró hacer que este archivo de ayuda funcione y me puede ayudar?
Solo para informar, algunos enlaces que seguí:
/src/main/aidl/com/android/vending/billing
?gradlew.bat assemble
y funciona de maravilla ... ¿está seguro de que la carpeta es / src / main / aidl / com / android / vending / billing no /src/main/aidl/com.android.vending.billing? AS 0.2.1? Gradle 0.5. +?Respuestas:
Tal como dice el mensaje de error, debe poner
IInAppBillingService.aidl
el directorio correcto dictado por su paquete (com.android.vending.billing).Dentro de la
src/main/aidl/
carpeta que ya tiene, coloque el.aidl
archivocom/android/vending/billing/
.fuente
Agregar esto como respuesta, ya que parecía ayudar a algunas personas.
Nota: asegúrese de incluir la importación necesaria si su referencia no funciona
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, se reconoció la clase
fuente
El resto de las publicaciones aquí no funcionaron para mí hasta que creé una nueva carpeta como se muestra aquí.
fuente
src/main
llamadoaidl
aidl
, seleccionenew->add package
Ingrese 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
can not resolve symbol IInAppBillingXXXXXX
Build
menú del estudio de Android, haga clic enRebuild Project
. Esto generará elIInAppBillingService.java
archivo dentroApp_Name/app/build/generated/source/aidl/debug/com/android/vending/billing
. Esto resolverá el problema.fuente
Agregue este código en build.gradle
Reconstruir e importar clase de ayuda
fuente
Las respuestas anteriores se concentran en la ubicación del archivo, pero parece que ya lo tenía configurado correctamente. Experimenté este mismo problema en Android Studio, pero ninguna de las respuestas enumeradas lo resolvió, y me golpeé la cabeza durante una hora. Finalmente, me di cuenta de que me faltaba una importación obvia:
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 encontré. Si bien puede ser obvio para los desarrolladores experimentados de Java, los principiantes que solo intentan aprender su primer proyecto pueden necesitarlo explícitamente.
fuente
Necesitamos agregar
crear carpeta - src / main / aidl / packagename y colocar el archivo aidl debajo de esto.
En el archivo aidl, mencione el nombre del paquete. paquete nombrepaquete
Ahora limpie el proyecto, reconstruya el proyecto: podemos obtener el archivo java correspondiente para la ayuda generada en la aplicación \ build \ generate \ source \ aidl \ debug \ packagename \ youraidl.java
fuente
Sé que suena muy fácil, pero copio pegar de la muestra de Google toda la carpeta
https://github.com/googlesamples/android-play-billing/tree/master/TrivialDrive/app/src/main
y luego limpié y reconstruí el proyecto y encontré una referencia.
fuente
He intentado todas las soluciones, pero el problema era que Android Studio había compilado, con alguna razón aparente, en un tipo de compilación diferente del módulo que contiene los paquetes AIDL que lo especificado por la configuración. Desde la depuración hasta el lanzamiento , por lo que los otros módulos no pudieron ver el paquete AIDL. Pasar de depurar a liberar y volver, resolvió mi problema.
fuente
reiniciar Android Studio funcionó para mí
Una segunda tontería que me llevó un tiempo. Solté 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 mi parte
fuente