【问题标题】:Aviary SDK update in AndroidAndroid 中的 Aviary SDK 更新
【发布时间】:2015-02-14 20:05:35
【问题描述】:

所以我们在项目中使用 Aviary SDK 已经很久了,没有出现任何问题。但是当我们将 Aviary 版本更新到最新版本时,出现了一些奇怪的行为 - 当您第一次在设备上安装捆绑了新版本 Aviary 的应用程序时,该设备具有旧版 Aviary 版本的应用程序,应用程序崩溃异常 -

FATAL EXCEPTION: IntentService[AviaryCdsService]
java.lang.IllegalStateException: Missing required api key secret

已安装应用程序的第二次运行按预期运行,所有功能均正常运行。如果设备之前没有安装过应用程序,则不会发生崩溃并且安装运行正常。从 com.aviary.android.feather.sdk:aviary-sdk:3.4.3.351 迁移到 com.aviary.android.feather.sdk:aviary-sdk:3.6 时会出现这种行为。 3

有没有其他人遇到过这样的问题,有什么办法可以避免这种崩溃吗?

【问题讨论】:

  • 如果有人遇到同样的问题,我们的团队想出了解决方法 - 我们在 Application 类的 onCreate() 方法中添加以下代码行: Intent cdsIntent = AviaryIntent.createCdsInitIntent(getBaseContext(), API_SECRET,空);启动服务(cdsIntent);

标签: android gradle aviary


【解决方案1】:

创建应用程序类并将下面的代码放在 onCreate() 方法中

意图 cdsIntent = AviaryIntent.createCdsInitIntent(getBaseContext(), API_SECRET, null);启动服务(cdsIntent);

【讨论】:

    【解决方案2】:

    如果您没有应用的 Google Play 结算公共 API 密钥怎么办?

    【讨论】:

    • 您应该能够只传递一个空字符串而不是 Google Play 结算密钥。这就是它在 Creative SDK 图像编辑器中的工作原理。
    【解决方案3】:

    答案在文档中。

    4.1。资产文件夹 在应用程序的资产文件夹中创建一个名为“aviary”的文件夹。在里面,创建一个名为“aviary.txt”的文件 - 在此文件的第一行输入您的 API 密钥,在第二行输入您的 Google Play 计费公共 API 密钥。这个文件不是 完全必要,但如果您排除它,您将收到警告。 我们这样做是为了在您的应用处于非活动状态时优化内容下载。 检查示例应用程序的资产文件夹中的模板 如何做到这一点。

    【讨论】:

    • 请添加正确的署名链接并清除报价格式。
    • 这不是完美的解决方案
    【解决方案4】:

    我遇到了同样的异常,但可能是因为我在活动中调用了AviaryIntent.createCdsInitIntent。一旦我将对AviaryIntent.createCdsInitIntent 的调用移至Application,此异常就消失了。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-03-16
      • 1970-01-01
      • 1970-01-01
      • 2018-12-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多