You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Fire App Builder启用Amazon IAP导致启动页卡顿问题

解决Fire App Builder启用Amazon IAP后启动页卡顿并抛出NullPointerException的问题

启用Amazon IAP订阅功能后,应用在启动页卡顿并抛出以下NullPointerException,关闭IAP功能后恢复正常:

E/SplashActivity: Failed to put data in cache for recipe
java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.Object com.amazon.android.module.Module.getImpl(boolean)' on a null object reference
at com.amazon.android.contentbrowser.helper.PurchaseHelper.initializePurchaseSystem(PurchaseHelper.java:145)
at com.amazon.android.contentbrowser.helper.PurchaseHelper.<init>(PurchaseHelper.java:131)
at com.amazon.android.contentbrowser.ContentBrowser.onAllModulesLoaded(ContentBrowser.java:758)
at com.amazon.android.tv.tenfoot.ui.activities.SplashActivity$1.doInBackground(SplashActivity.java:119)
...

可能的原因与解决方案

1. 检查IAP模块配置是否正确

  • 确认app/src/main/assets/module_config.json中已正确注册Amazon IAP模块:
    {
      "modules": [
        {
          "name": "AmazonIAP",
          "class": "com.amazon.android.iap.AmazonIAPModule"
        }
      ]
    }
    
  • 验证build.gradle中已引入Fire App Builder的IAP相关依赖,确保依赖版本与基础库一致。

2. 修复PurchaseHelper中的空指针问题

报错核心是调用Module.getImpl()时模块对象为null,需在PurchaseHelper.java第145行附近添加空值判断:

Module purchaseModule = ModuleManager.getInstance().getModule("AmazonIAP");
if (purchaseModule == null) {
    Log.e(TAG, "Amazon IAP module not found, skipping initialization");
    return;
}
mPurchaseSystem = (PurchaseSystem) purchaseModule.getImpl(true);

这样可以避免模块未加载时触发崩溃,同时输出明确的日志便于排查。

3. 确认IAP SDK集成步骤完整

  • 检查AndroidManifest.xml是否添加了IAP必需的权限和组件:
    <uses-permission android:name="com.amazon.android.inapp.purchasing.Permission.NOTIFY" />
    <service
        android:name="com.amazon.android.iap.ResponseReceiver"
        android:exported="true">
        <intent-filter>
            <action android:name="com.amazon.android.inapp.purchasing.NOTIFY" />
            <category android:name="android.intent.category.DEFAULT" />
        </intent-filter>
    </service>
    
  • 确保Amazon开发者后台的应用包名、签名与本地项目一致,且已创建对应的订阅商品。
  • 测试设备需安装Amazon Appstore并登录有效账号(测试可使用Amazon提供的测试账号)。

4. 清理缓存并重建项目

  • 执行Android Studio的File -> Invalidate Caches...操作,清理缓存后Rebuild Project。
  • 卸载设备上的旧应用,重新安装以避免旧配置缓存干扰。

内容的提问来源于stack exchange,提问作者Ben Halkum

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.13 16:45:47