当前位置: 首页 > 面试题库 >

在Linux上使用gaction更新Google Home / Assistant软件包时,Golang运行时会出现恐慌?

越国源
2023-03-14
问题内容

我正在尝试按照本教程中的说明在Linux 14.04 LTS盒子(不是Windows)上构建我的第一个Google Home应用:

https://medium.com/google-cloud/building-your-first-action-for-google-home-in-30-minutes-ec6c65b7bd32

我的应用程序到Google Cloud的部署成功。但是,当我到达使用模拟器测试应用程序的部分时,以下 gactions
命令失败,并显示消息“无帮助主题以供预览/模拟”

$ gactions preview --action_package action.json --invocation_name "three doors" --preview_mins 1234

No help topic for 'preview'

和:

$ gactions simulate

No help topic for 'simulate'

然后,我尝试在此处切换到模拟器的Google操作说明:

https://developers.google.com/actions/tools/simulator

该文档指示我使用以下命令上传我的Actions项目:

$ gactions update --action_package action.json --project three-doors-9898

但这会导致Golang恐慌崩溃,并带有以下堆栈跟踪:

    panic: runtime error: invalid memory address or nil pointer dereference [recovered]
    panic: runtime error: invalid memory address or nil pointer dereference
[signal SIGSEGV: segmentation violation code=0x1 addr=0x0 pc=0x506df6]

goroutine 1 [running]:
github.com/urfave/cli.HandleAction.func1(0xc4200fd208)
    /usr/local/google/home/gkal/code/go/src/github.com/urfave/cli/app.go:478 +0x27a
panic(0x737b00, 0x960720)
    /usr/lib/google-golang/src/runtime/panic.go:491 +0x283
github.com/Jeffail/gabs.(*Container).Bytes(0x0, 0x0, 0x0, 0x3000100)
    /usr/local/google/home/gkal/code/go/src/github.com/Jeffail/gabs/gabs.go:459 +0x26
github.com/Jeffail/gabs.(*Container).String(0x0, 0xc420123350, 0x793672)
    /usr/local/google/home/gkal/code/go/src/github.com/Jeffail/gabs/gabs.go:483 +0x2b
main.getLocaleFromActionPackage(0xc4203a60a0, 0xb, 0xc4203a60a0)
    /usr/local/google/home/gkal/code/go/src/github.com/gkaldevrel/cli/gactions/gactions.go:605 +0xdf
main.commandUpdate.func1(0xc42008cf00)
    /usr/local/google/home/gkal/code/go/src/github.com/gkaldevrel/cli/gactions/gactions.go:726 +0x209
reflect.Value.call(0x717fa0, 0x7a9988, 0x13, 0x793011, 0x4, 0xc4200fd1c8, 0x1, 0x1, 0xc4200fd150, 0x788860, ...)
    /usr/lib/google-golang/src/reflect/value.go:434 +0x906
reflect.Value.Call(0x717fa0, 0x7a9988, 0x13, 0xc4200fd1c8, 0x1, 0x1, 0x614896, 0x7930f1, 0x4)
    /usr/lib/google-golang/src/reflect/value.go:302 +0xa4
github.com/urfave/cli.HandleAction(0x717fa0, 0x7a9988, 0xc42008cf00, 0x0, 0x0)
    /usr/local/google/home/gkal/code/go/src/github.com/urfave/cli/app.go:487 +0x17a
github.com/urfave/cli.Command.Run(0x793732, 0x6, 0x0, 0x0, 0x0, 0x0, 0x0, 0x7a4928, 0x4b, 0x0, ...)
    /usr/local/google/home/gkal/code/go/src/github.com/urfave/cli/command.go:191 +0x9fd
github.com/urfave/cli.(*App).Run(0xc420001080, 0xc42000e0c0, 0x6, 0x6, 0x0, 0x0)
    /usr/local/google/home/gkal/code/go/src/github.com/urfave/cli/app.go:240 +0x57d
github.com/urfave/cli.(*App).RunAndExitOnError(0xc420001080)
    /usr/local/google/home/gkal/code/go/src/github.com/urfave/cli/app.go:257 +0x53
main.main()
    /usr/local/google/home/gkal/code/go/src/github.com/gkaldevrel/cli/gactions/gactions.go:157 +0xa02

以下是我的程序包文件( action.json ),我确实使用JSON验证程序进行了验证:

{
    "versionLabel": "1.0",
    "agentInfo": {
        "languageCode": "en-US",
        "projectId": "three-doors-9898",
        "voiceName": "male_1"
    },
    "actions": [{
        "description": "Launch intent",
        "initialTrigger": {
            "intent": "assistant.intent.action.MAIN"
        },
        "httpExecution": {
            "url": "https://us-central1-three-doors-9898.cloudfunctions.net/three_doors"
        }
    }]
}

如何解决此问题并使我的Google Home / Assistant应用正常运行?

更新 :我使用的 gactions 版本来自这里:

我使用此页面上的 Linux / x86_64 链接来获取它:

https://developers.google.com/actions/tools/gactions-
cli

这可能是我的系统版本错误吗?我正在运行64位版本的Ubuntu 14.04 LTS。


问题答案:

有可用的新gactions版本。尝试gactions selfupdate

如果由于版本已损坏而无法使用,请下载并运行旧版本。然后,此旧版本将更新为2.1.1,并且一切正常。



 类似资料:
  • 问题内容: 我正在尝试使用一些conda环境创建一个docker容器。当我在交互模式下运行容器时 运行没有问题。但是,每当我尝试使用Docker文件执行这些命令时,我都会收到 Docker文件如下所示: 因此似乎使用了sh而不是bash,所以我将Dockerfile编辑为以下内容: 有以下错误 问题答案: 您必须在构建期间使用变量将anaconda添加到PATH中,然后才能在Dockerfile中

  • 我想在我的项目上安装maatwebsite/excel软件包,但在linux上安装这些软件包时出错,当我运行:composer update/install或composer require maatwebsite/excel时,我发现了此错误

  • 问题内容: 我正在从安装软件包 该文件显示为: 是唯一无法安装的软件包,这将导致一切失败(larsk在注释中指出了预期的结果)。但是,失败后仍会继续运行并下载其余软件包。 据我了解,如果无法安装中列出的任何软件包,该命令将失败。 我在运行时是否可以传递任何参数,以告诉它安装可以执行的操作并跳过不能执行的软件包,或者一旦看到失败就退出。 问题答案: 运行每一行可能是一种解决方法。 注意:该参数在Ma

  • 问题内容: 我正在使用gradle作为JavaFX插件。即使在 distribution /下 构建和运行可执行文件之后,一切都可以完美运行,但只有一类: 为了多种目的,我创建了以下对象: 在IDE中运行该程序没问题,一切正常。但是,如果我构建并尝试运行.exe文件,则会得到以下-StackTrace: 我真的不明白。怎么可能找不到这个类,而我所有其他的类却都找不到呢? 我的build.gradl

  • 问题内容: 当我使用Java IDE构建具有JUnit测试的项目(例如NetBeans)时,它们可以正常编译,但是当我尝试在IDE外部使用ant运行构建脚本时,出现错误“包org.junit不存在”。 问题答案: 您应该将junit.jar添加到ant文件的classpath定义中。 有很多方法可以做到,例如: 有关设置类路径的详细信息,请参见Ant手册。

  • 问题内容: 使用pip安装Google App Engine时出错 问题答案: 这是因为PyPI已禁用对API的非HTTPS访问 https://mail.python.org/pipermail/distutils- sig/2017-October/031712.html 作为解决方法,您可以使用