我尝试查看类似问题,但那里提供的解决方案似乎不适合我的特定情况:
我最初按照配置和构建应用内计费示例应用程序的说明进行操作,将安全密钥替换为来自Google开发者帐户的公钥,并将包名称从com.example
更改为com.billtheape
。
然后,我构建了一个非发布版本,并在我的Android手机上运行了“健全性检查”。一切都很好(当然,除了访问Android市场服务器之外,因为根据设计它仅与已签名的发布版本一起使用)。
然后我尝试构建已签名的发布版本,但是收到了错误消息:
[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;
现在的问题是即使生成了“调试版本”构建,也会产生相同的错误,无论我尝试多少次清理项目。
对我来说,这看起来不像是Build Path问题,就像接受的答案所描述的那样(我也检查过了,但没有发现任何可疑的东西)。所以我尝试了其他方法:
- 退出Eclipse
- 在
%ANDROID_HOME%\extras\google\market_billing\gen\com
下发现了三个子目录:(1) android (2) example (3) billtheape - 删除子目录
example
。 - 启动Eclipse并清理项目。
现在调试版本可以正确构建,但签名版本仍然生成相同的错误。事实证明,删除那个多余的子目录并不是做魔术的关键,而是重新启动Eclipse,然后清理项目。
好吧,至少我已经把“调试版本”修复好了,但签名发布仍然失败并显示相同的错误。
您有什么想法,这个错误是什么意思,为什么会出现,如何解决?