我尝试调查similar问题,但那里提供的解决方案似乎不适合我的特定情况:
我最初遵循Configuring and building the sample application针对应用内结算的说明,使用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然后清理项目。
好的,所以至少我得到了“调试版本”的工作,但签名版本的导出仍然失败并出现同样的错误。
知道这个错误意味着什么,它为什么会发生以及如何修复它?
答案 0 :(得分:11)
简短回答:因为Eclipse + ADT很糟糕。 That's为什么。
更长的回答:我刚刚将同一个完全相同的项目导入到配置略有不同的不同机器上:Eclipse 3.6.2(而不是上述问题系统中的3.6.1)和SDK R13 (而不是有问题的系统中的R9。)
然后我尝试使用上述相同的步骤导出它。像魅力一样工作!
这是什么?伏都?IDE比我试图开发的软件更可预测的日子发生了什么?
下一步:在问题系统上升级Eclipse(至3.6.2) ,看看是否也解决了该系统中的问题。
更新:我刚刚在违规系统上完成了Eclipse 3.6.1到3.6.2的更新。事实证明,安装Eclipse 和是不可能保留现有的ADT。 https://dl-ssl.google.com/android/eclipse/迫使您安装“最新和最好的”,即使您不需要(例如,出于配置管理和跟踪原因)。所以使用新的Eclipse 3.6.2
我也得到ADT 16.0.0.v201112150204-238534
。像魅力一样工作!
组合Eclipse 3.6.1 + ADT 9.0.1.v201101191456-93220
的奇怪行为的根本原因和解释永远不会被知道......这是开发人员应该(并且确实)向Android Market发布商业级应用的组合在某个时间点。 Amazing
答案 1 :(得分:3)
我也有同样的问题,我解决了它:
完成!