Я попытался изучить подобные проблемы, но предлагаемые там решения, похоже, не соответствуют моей конкретной ситуации:
Сначала я выполнил инструкции для Конфигурирование и создание примера приложения для In-app Billing, заменив ключ безопасности на открытый ключ из Учетная запись разработчика 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;
Теперь проблема в том, что даже создание "отладочной версии" создало ту же ошибку, независимо от того, сколько раз я пытался очистить проект.
Это не выглядело так, как проблема с путями сборки в том смысле, что описанный ответ (я тоже это проверил, но не нашел ничего подозрительного). Поэтому я попробовал что-то еще:
- Выход из Eclipse
- Пятнистые три подкаталога в
%ANDROID_HOME%\extras\google\market_billing\gen\com
: (1) андроид (2) пример (3) billtheape - Удален подкаталог
example
. - Запустил Eclipse и очистил проект.
Теперь отладочная версия создается правильно, но подписанная версия по-прежнему генерирует ту же ошибку. Оказывается, удаление этого постороннего подкаталога было не тем, что делало магия, а скорее перезапуском Eclipse, а затем очисткой проекта.
ОК, так что, по крайней мере, я получил отладочную версию, но подписанный выпуск Export продолжает терпеть неудачу с той же ошибкой.
Любая идея, что означает эта ошибка, почему это происходит и как ее исправить?