【问题标题】:Debug Android inapp billing using Eclipse使用 Eclipse 调试 Android 应用内计费
【发布时间】:2012-06-26 23:15:53
【问题描述】:

现在我设法将 apk(使用 Eclipse Android 工具)和adb install .. 签名到设备进行测试。

但这删除了调试功能,例如“越过”,这使得问题追踪变得更加困难。

是否可以使用 Eclipse 调试应用内计费?

【问题讨论】:

  • 应用内计费很复杂。你最好让一个 helloworld 快速运行,然后随时进行更改。这样您就可以进行小的更改和测试。相信我,这听起来很容易,但要做到这一点,还有很多工作要做。不要错过任何关于应用内计费的 android 文档。但首先要让 hello world 工作,完成您的功能,然后通读文档,以确保您按照他们的指导进行操作。

标签: android eclipse in-app-billing


【解决方案1】:

不幸的是,我认为没有任何方法可以进行单步调试,我一直在使用打印输出。这是因为您必须使用发布密钥对您的应用程序进行签名,以便它与计费服务正确通信。很烦人。

【讨论】:

    【解决方案2】:

    在我的应用程序中,我使用了测试产品 ID android.test.purchased,它将模拟实际的购买过程(即,将显示应用程序内对话框,您将能够购买并获得可以处理的响应由您的应用程序)。使用该产品 ID,您可以通过 Eclipse 通过 USB 连接在设备上运行应用内代码(未签名)。您可能仍然需要解决一些测试问题(即说明您使用的是测试产品 ID 而不是您的真实 ID),但我发现使用该产品 ID 确实对我有很大帮助。

    请参阅应用内结算指南的testing 部分

    【讨论】:

      【解决方案3】:

      当您浏览应用内结算文档时,您会意识到要了解这项复杂的技术可能需要花费大量时间。大多数开发人员都觉得需要一个可以工作的 HelloWorld,然后再尝试构建。

      我已经上传了 2 个项目

      1. android 示例项目。您可以下载此项目,并立即运行示例。这将帮助您快速调试/跟踪并了解应用内计费的工作原理。

      2. 一个可帮助您快速集成应用程序的清理项目。这可以像图书馆一样提供帮助。只需在“结帐”按钮操作中集成“购买请求”即可。

      请注意:我没有纳入安全建议。在应用计费文档中阅读 android。在此之前,您需要自己承担风险。

      对于 1

      • 下载“http://www.4shared.com/file/f5wH3qke/InAppBilling1.html
      • 为所有通信创建一个新的 gmail 帐户(为什么,我将在下面解释)
      • 支付 25 美元并购买一个“市场”帐户。
      • 将项目导入到您的 eclipse 环境中
      • 创建一个签名的应用apk,文件-导出-选择您的项目-创建或使用密钥库,从今天起应该25年有效。
      • 将签名的 apk 作为“草稿应用程序”上传到市场,请勿发布。
      • 对于上传的apk,您需要添加“In App Products”。您将在您上传的 apk 的主页上找到此链接。
      • 在 Security.java 中不要忘记从您的市场帐户“编辑个人资料”页面添加您的“公钥”。
      • 在“In App Product List”中,需要一一添加以下产品
        • 以下文本应用作“应用内产品 ID”
        • sword_001 作为托管
        • potions_001 为非托管
        • 标题和描述无关紧要(用于测试目的)。在此处添加您需要的内容。
        • 成本加 1 美元(最低)
      • 点击自动填充
      • 保存

      发布应用内项目(这里不要混淆,你只需要发布应用内产品,而不是APP)

      • 在测试帐户中,在此处添加您的个人 gmail id。现在,需要将此 gmail 帐户配置为您手机上的第一个 gmail 帐户。
      • 是的,这不会在您的模拟器上运行
      • 现在示例应用程序应该可以运行了。

      对于 2

      下载“http://www.4shared.com/file/h8YnJyf_/InAppBillingIntegration.html

      要集成,请在您的调用活动中初始化结帐代码

      Handler handler = new Handler() ;
      CheckoutPurchaseObserver checkout = new CheckoutPurchaseObserver(this, handler);
      

      为您的产品发送结帐请求

      checkout.sendCheckoutRequest(purchaseUri.toString(),null);
      

      重要提示:

      • 此 purchaseUri 是您在“ma​​rket.android.com/publish-->创建新的应用内产品上的资源的“应用内产品 ID” “ 选项。该字符串应设置为“in app product” id。
      • 这就是“id”最重要的原因。 “应用内产品 ID”是您引用该特定产品的方式。
      • 另外,在 Security.java 中,不要忘记从您的市场帐户“edit profile”页面添加您的“public key”。**

      调试说明

      • Lo​​gCat 会将所有错误显示为 InAppBilling 标记
      • 这个项目创建了一个名为“inappbilling”的shared_preferences,并且debug设置为true
      • 可能不需要 androidmanifest.xml,因为这个项目不需要 有一个主屏幕。

      为什么我们需要创建一个新的 gmail 帐户?

      简单。您购买市场帐户的帐户不能用于“测试”您的应用内计费。因为您不能为自己购买产品。并且您设备上的主要帐户应设置为市场帐户上的“测试帐户”。鸡蛋问题在这里。希望清楚。

      我来自“http://crazyviraj.blogspot.com/2011/06/some-notes-on-implementing-in-app.html”(不是我的)的一个有趣的博客。

      【讨论】:

      • 我想下载您的代码,但它需要我注册一个新帐户。能不能放到github之类的地方分享一下?
      猜你喜欢
      • 2011-10-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-08-12
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多