Je migre actuellement une application Eclipse vers Android Studio. Cette application utilisait la facturation intégrée à l'application.
Mon principal problème est de compiler le projet et le fichier aidl (je suppose que vous utilisez tous ce fichier )
Je reçois ce message d'erreur:
Gradle: error: cannot find symbol class IInAppBillingService
Gradle: error: package IInAppBillingService does not exist
Donc, suite à quelques tutoriels, je déplace ce fichier de com.mypackage.billing vers src / main / aidl (voir cette référence )
Mais dès que je fais cela, je reçois ce message:
Gradle: L'exécution a échoué pour la tâche «: xxxxxxxxxxx: compileDebugAidl».
Échec de l'exécution de la commande: (...) C: \ Users \ xxxx \ AndroidStudioProjects \ xxxxxxProject \ xxxxxxx \ src \ main \ aidl \ IInAppBillingService.aidl: 45 interface IInAppBillingService doit être déclaré dans un fichier appelé com \ xxxxxxxx \ billing \ IInAppBillingService .aidl.
Le message est clairement en contradiction avec le message de la page de bug Google que j'ai liée ci-dessus.
Quelqu'un a réussi à faire fonctionner ce fichier aidl et peut-il m'aider?
Juste pour informer, quelques liens que j'ai suivis:
/src/main/aidl/com/android/vending/billing
?gradlew.bat assemble
et cela fonctionne comme un charme ... êtes-vous sûr que ce dossier est / src / main / aidl / com / android / vending / billing pas /src/main/aidl/com.android.vending.billing? AS 0.2.1? Gradle 0,5. +?Réponses:
Tout comme le message d'erreur l'indique, vous devez mettre
IInAppBillingService.aidl
dans le bon répertoire dicté par son package (com.android.vending.billing).Dans le
src/main/aidl/
dossier que vous avez déjà, placez le.aidl
fichiercom/android/vending/billing/
.la source
Ajouter cela comme réponse car cela semblait aider pas mal de gens.
Remarque: assurez-vous d'inclure l'importation nécessaire si votre référence ne fonctionne pas
https://issuetracker.google.com/issues/36973270
Modifier à partir du commentaire
Après avoir fait cela, les références à IInAppBillingService dans mon code étaient toujours mises en évidence comme des erreurs, mais après la reconstruction de l'application, la classe a été reconnue
la source
Le reste des messages ici ne fonctionnait pas pour moi jusqu'à ce que j'ai créé un nouveau dossier comme indiqué ici.
la source
src/main
appeléaidl
aidl
, sélectionneznew->add package
Entrez le nom du package
com.android.vending.billing
Copier
IInAppBillingService.aidl
du répertoireAndroid/Sdk/extras/google/play_billing
vers le répertoireApp_name/app/src/main/aidl/com/android/vending/billing
can not resolve symbol IInAppBillingXXXXXX
Build
menu du studio Android, cliquez surRebuild Project
. Cela générera unIInAppBillingService.java
fichier à l'intérieurApp_Name/app/build/generated/source/aidl/debug/com/android/vending/billing
. Cela résoudra le problème.la source
Ajoutez ce code dans build.gradle
Reconstruire et importer la classe d'aide
la source
Les réponses ci-dessus se concentrent sur l'emplacement du fichier, mais il semble que vous l'aviez déjà défini correctement. J'ai rencontré ce même problème dans Android Studio, mais aucune des réponses répertoriées ne l'a résolu et je me suis cogné la tête pendant une heure. Finalement, j'ai réalisé qu'il me manquait une importation évidente:
Une fois que j'ai ajouté qu'il a résolu ce message d'erreur.
Cette importation n'est mentionnée dans aucun des documents de facturation Google ni incluse dans l'un des exemples de code que j'ai trouvés. Bien que cela puisse être évident pour les développeurs Java expérimentés, les débutants qui essaient simplement d'apprendre leur premier projet peuvent avoir besoin de le signaler explicitement.
la source
Nous devons ajouter
créez un dossier - src / main / aidl / nom du pack et placez le fichier aidl sous celui-ci.
Dans le fichier aidl - mentionnez le nom du package. nom du paquet
Maintenant, nettoyez le projet, reconstruisez le projet - Nous pouvons le fichier java correspondant pour l'aide générée dans app \ build \ generated \ source \ aidl \ debug \ packagename \ youraidl.java
la source
Je sais que cela semble si facile, mais je copie coller de google sample all folder
https://github.com/googlesamples/android-play-billing/tree/master/TrivialDrive/app/src/main
et ensuite je nettoie et reconstruit le projet et il a trouvé une référence.
la source
J'ai essayé toutes les solutions, mais le problème était qu'Android Studio avait compilé, avec une raison apparente, dans un type de construction différent du module contenant les packages AIDL que celui spécifié par les paramètres. Du débogage à la publication , les autres modules ne pouvaient donc pas voir le paquet AIDL. Passer du débogage à la version et revenir en arrière a résolu mon problème.
la source
le redémarrage d'Android Studio a fonctionné pour moi
une deuxième chose stupide qui m'a pris du temps. J'ai laissé tomber le code sur Android Studio pour lui permettre de créer le fichier, mais il a créé un .java (comme prévu) à la place d'un .aidl Jiji, stupide de ma part
la source