我正在使用应用内计费教程开始实施。
- 我下载了示例应用程序
- 从开发者控制台获取我的密钥
- 在我的清单中放置适当的权限
将aidl文件和所有util java文件放入我的项目中,并将以下代码实现到我的onCreate事件中......
if (GooglePlayVersion) { try { mHelper = new IabHelper(this, base64EncodedPublicKey); mHelper.startSetup(new IabHelper.OnIabSetupFinishedListener() { public void onIabSetupFinished(IabResult result) { if (!result.isSuccess()) // Oh noes, there was a problem. debugLog("Problem setting up In-app Billing: " + result, 0); debugLog("IAB got bound", 0); } }); } catch (Exception e){ debugLog("iab exception " + e.getMessage(), 1); } }
我的应用程序在 mHelper.startsetup 行上运行。没有例外。当我逐步完成时,一旦我离开那一行,调试就永远不会进入下一行。我的应用程序永远不会启动。当然,如果我将 GooglePlayVersion 设置为 false 一切运行正常。
编辑:自从我昨天的帖子以来,我发现 mHelper.startSetup 行确实引发了异常。 Stored Exception Found Binder invocation to an incorrect interface [Ljava.lang.StackTraceElement;@405a8478
.
我发现其他人的帖子有这个例外,有人建议我的aidl文件可能与计费界面不匹配。我从下载的 trivialdrivessample 程序中获得了aidl 文件,仅更改了包行。