Bil*_*Ape 8 android 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;
Run Code Online (Sandbox Code Playgroud)
现在的问题是,即使是"调试版本"构建也会产生相同的错误,无论我多少次尝试清理项目.
对于我所看到的接受的答案(我也检查过,但找不到任何可疑的东西),这对我来说并不像构建路径问题.所以我尝试了别的东西:
%ANDROID_HOME%\extras\google\market_billing\gen\com:(1)android(2)例子(3)billtheapeexample.调试版本现在正确构建,但签名版本仍会生成相同的错误.事实证明,删除那个无关的子目录并不是什么魔术,而是重新启动Eclipse然后清理项目.
好的,所以至少我得到了"调试版本"的工作,但是签名版本的导出保持失败并出现同样的错误.
知道这个错误意味着什么,它为什么会发生以及如何修复它?
Bil*_*Ape 11
简短的回答:因为Eclipse + ADT很糟糕.这就是原因.
更长的答案:我刚刚将相同的项目导入到具有略微不同配置的不同机器: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发布商业级应用程序的组合.很棒.