it-roy-ru.com

Ошибка при добавлении библиотеки биллинга в приложении

Я делал это после этих шагов, как указано в ссылка

  1. Скопируйте файл IInAppBillingService.aidl в свой проект Android. </ P> (1) Если вы используете Eclipse: импортируйте файл IInAppBillingService.aidl в каталог/src. </ P> (2) Если вы разрабатываете в среда, отличная от Eclipse: создайте следующий каталог/src/com/Android/vending/billing и скопируйте файл IInAppBillingService.aidl в этот каталог. </ p>
  2. Создайте свое приложение. Вы должны увидеть сгенерированный файл с именем IInAppBillingService.Java в каталоге /gen вашего проекта.
  3. Добавьте вспомогательные классы из каталога /util образца TrivialDrive в свой проект. Не забудьте изменить объявления имен пакетов в этих файлах, чтобы ваш проект компилировался правильно.

Но когда я закончил, Eclipse выдает мне ошибку:

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

файл aidl находится в правильном каталоге, но файл IInAppBillingService.Java не был создан. 

Кто-нибудь видел это раньше?

37
StupidCodeGenerator

щелкните правой кнопкой мыши на заголовке проекта и создайте новый ПАКЕТ ... вызовите пакет com.Android.vending.billing .... поместите туда файл aidl, чтобы устранить ошибку. 

Пища для размышления: для тех, кто интересуется - при использовании чьего-либо файла aidl имя пакета для обоих приложений должно быть одинаковым. Google использовал com.Android.vending.billing в качестве имени пакета для своего интерфейса помощи по вопросам биллинга, поэтому вы ДОЛЖНЫ также использовать такое же имя пакета в своем приложении. Это правило при использовании aidl. 

56
j2emanue

Для пользователей Android-студии это должна быть структура:

enter image description here

Работал для меня, согласно этому ответу.

27
David

Структура, о которой упоминалось @David , прекрасно работает в Android Studio 1.2.

Ваш путь к папке биллинга должен выглядеть следующим образом: 

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

Здесь вы можете проверить сгенерированный файл IInAppBillingService.Java:

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

Удачи !

3
Stefan Ciprian Hotoleanu

В каталоге/src выберите Файл> Создать> Пакет, затем создайте пакет с именем com.Android.vending.billing

Скопируйте файл IInAppBillingService.aidl из/extras/google/play_billing/и вставьте его в папку src/com.Android.vending.billing/в рабочей области.

Создайте свое приложение. Вы должны увидеть сгенерированный файл с именем IInAppBillingService.Java в каталоге/gen вашего проекта.

2
Zeeshan

Другие предложения хороши. Иногда Eclipse может быть просто странным, и в этом случае исправление проекта может исправить это.

1
superarts.org

Единственный совет, который я могу вам дать - это перепроверить написание каталогов в вашей папке src, если вы поместите файл в /src/com/Android/vending/billing/IInAppBillingService.aidl, он должен работать

1
Lukas Hanacek

Я сделал то, что предложил @ j2emanue (нажмите «Создать/Пакет», добавьте «com.Android.vendor.billing»), а также добавил эти каталоги в мою файловую систему (com/Android/vendor/billing), а затем скопировал в нее файл. Затем нажал Обновить на проекте. Построить, и это удалось.

1
Anna Billstrom

2018

app/build.gradle:

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

или же

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

для IInAppBillingService.aidl

0
Alexander Lubyagin

Убедитесь, что вы добавили биллинговую библиотеку в свой build.gladle под зависимости

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'
}

Смотрите последнюю строку в приведенном выше коде. Реализация 'com.Android.billingclient: billing: 1.1' решила ту же проблему для меня

0
vinayak