Не удалось создать IMarketBillingService.aidl для покупки inApp

Я пытаюсь импортировать com.android.vending.billing.IMarketBillingService. Но я получил ошибку:

The import com.android.vending.billing.IMarketBillingService cannot be resolved.

У меня есть еще один проект, где я делаю то же самое, и он отлично работает. Я скопировал файлы, необходимые для покупки в приложении, в новый проект. Это означает, что данные должны быть правильными. (Я заменил имя пакета) Я проверяю несколько раз, я забыл класс. Несколько дней назад я скопировал файлы для коллеги, и это работает.

Я попробовал очистить и обновить проект.

Ответ 1

У меня была эта же проблема. Я обнаружил, что вставляя в .aidl перед любыми источниками биллинга в приложении в ваш проект, он будет генерировать .java.

При попытке ссылаться на этот .java файл до его создания будет содержать ошибки. Поскольку у вас есть ошибки, он не будет создавать ваши ресурсы, то есть R.java или IMarketBillingService.java.

Ответ 2

Я исправил это, сняв флажки со всеми строителями на свойствах проекта, нажав "ОК", затем снова проверьте их и нажмите "ОК". Большое спасибо, Google!

Ответ 3

Загрузите исходный код по следующей ссылке, сравните свой код с загруженным кодом, я уверен, что вы исправите свою проблему.

http://www.anddev.org/resources/file/2875

Ответ 4

Вы также можете просто удалить папку gen в eclipse, это должно вызвать перестройку плагина eclipse и создать соответствующий класс java.

Ответ 5

Для меня эта проблема решена следующим образом:

Документация по настройке в файле IInAppBillingService.aidl является неопределенной:

Скопируйте файл IInAppBillingService.aidl в проект Android.

  • Если вы используете Eclipse: импортируйте файл IInAppBillingService.aidl в каталог /src.
  • Если вы работаете в среде, отличной от Eclipse: создайте следующий каталог /src/com/android/vending/billing и скопируйте файл IInAppBillingService.aidl в этот каталог.

Для меня это подразумевало, что если бы я был в Eclipse, я должен поместить его в корень моей директории src, но если нет, мне нужно было поместить его в указанный пакет. Итак, я поместил файл IInAppBillingService.aidl в корень каталога my/src, и у него были все сбои. Это была проблема.

Я не знаю, почему документы написаны так, но решение было поместить этот файл в соответствующий каталог пакетов, который com.android.vending.billing, как объявлено внутри файла .aidl. Затем он был успешно сгенерирован, а все остальные файлы были созданы правильно.

Ответ 6

В конце я использую сгенерированный java файл более старого проекта вместо IMarketBillingService.aidl. Теперь он работает.

Ответ 7

В Eclipse, по крайней мере, вам нужно изменить настройки компилятора Java (так как это ошибка компилятора).

Попробуйте изменить уровень соответствия компилятора с 1.5 до 1.6 или 1.7. Это сработало для меня.

Ответ 8

У меня была эта проблема, вот что меня спасло:

  • Создайте новый каталог с именем 'aidl' в разделе 'src/main/'. Он должен выглядеть так: src/main/aidl.
  • Добавить новый пакет имя com.android.vending.billing 'в каталог src/main/aidl' li >
  • Скопировать 'IInAppBillingService.aidl' в пакет, созданный выше. В конце концов, он должен выглядеть примерно так, как показано ниже.

Screenshot of result


Ссылки

https://code.google.com/p/android/issues/detail?id=56755 fooobar.com/questions/49771/...

Ответ 9

У меня возникла эта неприятная проблема при переходе на новую машину. Для меня работала сборка с использованием "ant debug" в командной строке для создания файлов служб биллинга.

http://developer.android.com/guide/developing/building/building-cmdline.html

Ответ 10

Импортируйте всю папку "android-sdk-macosx/extras/google" и все ее проекты. Проект com.example.dungeons.Dungeons должен теперь скомпилировать ok.

Ответ 11

Я пробовал некоторые из методов здесь, но не работал у меня.

Что для меня получилось, это просто Clean, затем Build All.

Ответ 12

В моем случае мне пришлось выбрать Android Project Target из Project Properties > Android > Project Build Target. По-видимому, после моего последнего обновления Eclipse я не загрузил уровень API, который я использовал для работы над проектом. В результате Eclipse не смог разрешить последний использованный уровень API и привел к ошибке.