android - studio - install google play billing library
¿Cómo puedo agregar el archivo aidl a un estudio de Android(desde el ejemplo de facturación en la aplicación) (10)
Agregar esto como una respuesta, ya que parecía ayudar a un buen número de personas.
- Cree un nuevo directorio llamado ''aidl'' en ''src / main /''. Debería verse como '' src / main / aidl ''.
- Agregue un nuevo nombre de paquete '' com.android.vending.billing '' al directorio '' src / main / aidl ''
- Ubique su ubicación de 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 lo cambiaste a medida, deberás averiguar la ubicación a través del administrador de SDK.
- Copie ''IInAppBillingService.aidl'' en el paquete creado arriba. Al final, debería verse similar a la imagen de abajo.
- Reconstruye el proyecto y debería ser bueno ir.
Nota: asegúrese de incluir la importación necesaria si su referencia no está funcionando
import com.android.vending.billing.IInAppBillingService;
https://issuetracker.google.com/issues/36973270
Editar de un comentario
Después de hacer esto, las referencias a IInAppBillingService en mi código aún se resaltaron como errores, pero después de reconstruir la aplicación, se reconoció la clase
Actualmente estoy migrando una aplicación de Eclipse a Android Studio. Esta aplicación usaba la facturación de la aplicación integrada.
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
Entonces, siguiendo algunos tutoriales, muevo este archivo de com.mypackage.billing a src / main / aidl (ver esta referencia )
Pero tan pronto como hago eso, obtengo este mensaje:
Gradle: ejecución fallida para la tarea '': xxxxxxxxxxx: compileDebugAidl''.
Error al 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 errores de Google que he vinculado anteriormente.
¿Alguien acertó para hacer que este archivo de ayuda funcione y me puede ayudar?
Solo para informar, algunos enlaces seguí:
Agregue este código en build.gradle
android {
sourceSets {
main {
aidl.srcDirs = [''src'']
}
}
}
Reconstruye e importa la clase de ayuda
Las respuestas anteriores se concentran en la ubicación del archivo, pero parece que ya lo hiciste correctamente. Experimenté este mismo problema en Android Studio, pero ninguna de las respuestas enumeradas lo resolvió, y me golpeé la cabeza 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 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 intenten aprender su primer proyecto pueden necesitarlo explícitamente señalado.
Necesitamos agregar
crear carpeta - src / main / aidl / packagename y colocar el archivo aidl debajo de esto.
En el archivo aidl, menciona el nombre del paquete. paquete nombredelpaquete
Ahora limpie el proyecto, reconstruya el proyecto - Podemos el archivo java correspondiente para la ayuda generada en la aplicación / build / generated / source / aidl / debug / packagename / youraidl.java
Probé todas las soluciones, pero el problema fue que Android Studio compiló, por cualquier razón aparente, en un tipo de compilación diferente del módulo que contiene los paquetes AIDL que los especificados en la configuración. De la depuración a la versión , por lo que los otros módulos no pudieron ver el paquete de AIDL. Pasando de la depuración a la versión y regresa, resolvió mi problema.
Sé que suena tan fácil, pero copio pegar de la carpeta de muestra de Google toda la carpeta
https://github.com/googlesamples/android-play-billing/tree/master/TrivialDrive/app/src/main
aidl / com / android / vending / facturación
copiado en project helpl (yo había configurado la vista del proyecto en Android Studio)
y luego limpio y reconstruyo el proyecto y encontré una referencia.
Tal como dice el mensaje de error, debe 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/
.
reiniciar Android Studio funcionó para mí
una segunda cosa tonta que me tomó 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 .idj Jiji, estúpido de mí
- Crear un nuevo directorio bajo
src/main
llamadoaidl
- Haga clic derecho en el directorio
aidl
, seleccioneaidl
new->add package
Ingrese el nombre del paquete
com.android.vending.billing
Copie
IInAppBillingService.aidl
del directorioAndroid/Sdk/extras/google/play_billing
en el directorioApp_name/app/src/main/aidl/com/android/vending/billing
- Ahora continúe con la codificación de facturación de InApp y mientras define 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á el archivoIInAppBillingService.java
dentro deApp_Name/app/build/generated/source/aidl/debug/com/android/vending/billing
. Esto resolverá el problema.