Я пытался изучить похожие проблемы, но предлагаемые там решения, похоже, не соответствуют моей конкретной ситуации:
Сначала я следовал инструкциям для Настройка и создание примера приложения для биллинга в приложении, заменив ключ безопасности открытым ключом из учетной записи Google для разработчиков и изменив имя пакета с com.example
на com.billtheape
.
Затем я собрал неофициальную версию и запустил «проверку работоспособности» на своем телефоне Android. Все прошло нормально (за исключением доступа к серверу Android Market, конечно, поскольку по дизайну он работает только с подписанной версией).
Затем я попытался создать подписанную версию выпуска, но получил ошибку:
[2012-01-03 20:52:45 - Dex Loader] Unable to execute dex:
Multiple dex files define Lcom/android/vending/billing/IMarketBillingService;
[2012-01-03 20:52:45 - Dungeons] Conversion to Dalvik format failed:
Unable to execute dex: Multiple dex files define Lcom/android/vending/billing/IMarketBillingService;
Проблема теперь в том, что даже в «отладочной версии» возникла одна и та же ошибка, независимо от того, сколько раз я пытался очистить проект.
Это не выглядело для меня как проблема пути сборки в том смысле, что описан принятый ответ (я тоже это проверил, но не нашел ничего подозрительного). Поэтому я попробовал что-то еще:
- Выходное затмение
- Пятнистые три подкаталога в
%ANDROID_HOME%\extras\google\market_billing\gen\com
: (1) Android
(2) пример (3) billtheape
- Удален подкаталог
example
.
- Запустил Eclipse и очистил проект.
Отладочная версия теперь собирается правильно, но подписанный выпуск по-прежнему генерирует ту же ошибку. Оказывается, что удаление этого постороннего подкаталога было не тем, что сотворило магию, а скорее перезапустить Eclipse и затем очистить проект.
ОК, так что, по крайней мере, я вернул «отладочную версию», но экспорт подписанного выпуска продолжает работать с той же ошибкой.
Есть идеи, что означает эта ошибка, почему она происходит и как ее исправить?