web-dev-qa-db-fra.com

Erreur lors de l'ajout de la bibliothèque de facturation intégrée

Je faisais cela en suivant ces étapes comme mentionné dans le link

  1. Copiez le fichier IInAppBillingService.aidl dans votre projet Android. </ P> (1) Si vous utilisez Eclipse: Importez le fichier IInAppBillingService.aidl dans votre répertoire/src. </ P> (2) Si vous développez dans un environnement non-Eclipse: Créez le répertoire suivant/src/com/Android/vending/billing et copiez le fichier IInAppBillingService.aidl dans ce répertoire. </ p>
  2. Construisez votre application. Vous devriez voir un fichier généré nommé IInAppBillingService.Java dans le répertoire /gen de votre projet.
  3. Ajoutez les classes auxiliaires du répertoire /util de l'exemple TrivialDrive à votre projet. N'oubliez pas de modifier les déclarations de nom de package dans ces fichiers en conséquence afin que votre projet soit compilé correctement.

Mais quand j'ai fini ça, Eclipse me donne une erreur:

interface IInAppBillingService should be declared in a file called com\Android\vending\billing\IInAppBillingService.aidl.

le fichier aidl se trouve dans le bon répertoire, mais le fichier IInAppBillingService.Java n'a pas été généré. 

Est-ce que quelqu'un a déjà vu ça?

37
StupidCodeGenerator

cliquez avec le bouton droit de la souris sur la tête du projet et créez un nouveau PACKAGE ... appelez le package com.Android.vending.billing .... déposez le fichier aidl dans celui-ci pour éliminer l'erreur. 

Quelques pistes de réflexion: pour ceux qui sont intéressés - lorsque vous utilisez le fichier helpl de quelqu'un, le nom du package pour les deux applications doit être identique. google a utilisé com.Android.vending.billing comme nom de package pour son interface d'aide à la facturation, vous devez donc également utiliser le même nom de package dans votre application. Telle est la règle lorsque vous utilisez aidl. 

56
j2emanue

Pour les utilisateurs de studio Android, cela devrait être la structure:

enter image description here

Travaillé pour moi, selon cette réponse.

27
David

La structure que @David mentionne fonctionne bien dans Android Studio 1.2.

Votre chemin d'accès au dossier de facturation devrait ressembler à ceci: 

[YOUR_APP_FOLDER]/app/src/main/aidl/com/Android/vending/billing/IInAppBillingService.aidl

C’est ici que vous pouvez vérifier le fichier généré par IInAppBillingService.Java:

[YOUR_APP_FOLDER]/app/build/generated/source/aidl/debug/com/Android/vending/IInAppBillingService.Java

Bonne chance !

Dans le répertoire/src, cliquez sur Fichier> Nouveau> Package, puis créez un package nommé com.Android.vending.billing.

Copiez le fichier IInAppBillingService.aidl de/extras/google/play_billing/et collez-le dans le dossier src/com.Android.vending.billing/de votre espace de travail.

Construisez votre application. Vous devriez voir un fichier généré nommé IInAppBillingService.Java dans le répertoire/gen de votre projet.

2
Zeeshan

Les autres suggestions sont bonnes. Parfois, Eclipse peut être bizarre et un nettoyage de projet peut y remédier.

1
superarts.org

Le seul conseil que je puisse vous donner est de vérifier l'orthographe des répertoires de votre dossier src. Si vous mettez le fichier dans /src/com/Android/vending/billing/IInAppBillingService.aidl, cela devrait fonctionner

1
Lukas Hanacek

J'ai fait ce que @ j2emanue avait suggéré (cliquez sur Nouveau/Paquet, ajoutez "com.Android.vendor.billing") et j'ai également ajouté ces répertoires à mon système de fichiers (com/Android/fournisseur/facturation), puis copiez le fichier qu'il contient. Ensuite, cliquez sur Actualiser dans le projet. Construire et ça a réussi.

1
Anna Billstrom

2018

app/build.gradle:

sourceSets {
  main {
    aidl.srcDirs = ['src/main/aidl']
  }
}

ou

sourceSets {
  main {
    aidl.srcDirs = ['src']
  }
}

pour IInAppBillingService.aidl

0
Alexander Lubyagin

Vérifiez que vous avez ajouté la bibliothèque de facturation dans votre build.gladle sous des dépendances

dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation 'com.Android.support:appcompat-v7:27.1.1'
testImplementation 'junit:junit:4.12'
androidTestImplementation 'com.Android.support.test:runner:1.0.2'
androidTestImplementation 'com.Android.support.test.espresso:espresso-core:3.0.2'

implementation 'com.Android.billingclient:billing:1.1'
}

Voir la dernière ligne du code ci-dessus. L'implémentation de 'com.Android.billingclient: billing: 1.1' a résolu le même problème pour moi

0
vinayak