从示例井字游戏开始的 Chromecast 应用程序 - 无法启动应用程序:请求失败

Posted

技术标签:

【中文标题】从示例井字游戏开始的 Chromecast 应用程序 - 无法启动应用程序:请求失败【英文标题】:Chromecast app starting from sample TicTacToe - failed to start application: request failed 【发布时间】:2013-08-05 20:49:58 【问题描述】:

我的 Chromecast 有一个列入白名单的 URL,我可以使用开箱即用的代码安装和运行示例井字游戏应用程序。但是当我将“井字游戏”切换到我的应用程序 ID 时,我在 LogCat 中得到了这个:

StartApplicationRequest failed with status: -4
StartSessionTask failed with error: failed to start application: request failed
start session failed: failed to start application: request failed

我查看了许多 SO 问题,其中人们未能让自己的 App Id 正常工作,但这些解决方案并没有解决我的问题。例如,https://***.com/a/17916608/1399483 此外,谷歌通过电子邮件告诉我他们第一次搞砸了应用程序 ID,因此他们给我发送了一个新 ID。我正在使用它。

我所做的更改:

首先,在GameActivity中我改变了

    try 
        mSession.startSession("TicTacToe");
     catch (IOException e) 
        Log.e(TAG, "Failed to open a session", e);
    

    try 
        mSession.startSession("<the new app id from Google>");
     catch (IOException e) 
        Log.e(TAG, "Failed to open a session", e);
    

然后在 TicTacToe.html 我改变了

      var chromecastApp = new cast.receiver.Receiver("TicTacToe",
      [ cast.TicTacToe.PROTOCOL ], "", 5);

      var chromecastApp = new cast.receiver.Receiver("<the new app id from Google>",
      [ cast.TicTacToe.PROTOCOL ], "", 5);

那么,从示例代码开始——包括发送方和接收方——总共需要进行多少更改,以及在哪些文件中?我错过了一些吗?如果没有,那我会回谷歌看看是否还有什么问题。

【问题讨论】:

我只是将它们都保留为井字游戏,效果很好 @schwiz 在您想开发时帮不上什么忙。如果您保持不变,则意味着您没有通过自己的 URL 访问 Web 应用程序。相反,您访问的是 Google 最初设置的一些我们不知道的 URL。 【参考方案1】:

原来我输入的序列号不正确。在给 Google 的员工发了一封电子邮件并得到了非常快速的回复(感谢 Les)之后,事情就开始运转了。

所以,为那些追随我的人回答这个问题,我在问题中所做并指出的 2 项更改就是让您自己的应用 ID 正常工作所需的全部内容。如果这些更改不起作用,请告知 Google,他们可以检查您是否错误地提交了网络表单等。

我对 Google 的 2 条建议:

    请让这些序列号更易于阅读 可能会在提交 Web 表单时向开发人员发送一封电子邮件,以便她/他可以仔细检查提交的内容

【讨论】:

您是否必须在您的服务器上重命名 tictactoe.html?它是如何知道如何查找 tictactoe.html 的?谢谢。 @thought.tinkerer 您需要将该文件命名为在白名单 URL 中的名称。所以我将 myveryowndomain.com/cast/tictactoe.html 列入白名单,但如果我将 .../cast/foo 列入白名单,则需要将文件重命名为 foo。【参考方案2】:

在文件 README_ECLIPSE.txt 中它说:

In GameActivity at line 91, the code makes a call to the app name "TicTacToe". 
This is a whitelisted app name at which the TicTacToe receiver is located, 
so you can simply build and run the app without worrying about whitelisting 
your own receiver.

所以请不要更改示例代码中的任何内容(以替换为您的 AppId),只需构建并运行以查看它是否适合您。

如果您无法做到这一点,请在此处查看答案:

Unable to debug Whitelisted device / ApplicationSession failing to start

【讨论】:

正如我所提到的,我可以让所有示例代码“开箱即用”。正如你所指出的,任何人都可以。这里的问题是,让它与白名单 URL 一起工作的最少更改次数是多少。

以上是关于从示例井字游戏开始的 Chromecast 应用程序 - 无法启动应用程序:请求失败的主要内容,如果未能解决你的问题,请参考以下文章

Java applet 井字游戏——怎样重新开始?(留问题)

Android,在一个简单的在线游戏中连接两个用户,比如井字游戏。

无法使 chromecast 示例 ios 应用程序正常工作

在井字游戏 C++ 中使用“新游戏”按钮,win32 应用程序初学者

Chromecast 接收器应用程序无故终止

为啥我的井字游戏代码无法检测到有人中奖了?蟒蛇 3