简体   繁体   English

运行mix deps.get引发:erlang.binary_to_atom参数错误

[英]Running mix deps.get throws :erlang.binary_to_atom argument error

I'm building a Nerves project and am attempting to verify my custom firmware will be built with the main Nerves application following the instructions here . 我正在构建一个Nerves项目,并尝试按照此处的说明使用主Nerves应用程序来构建我的自定义固件。 I've set up a UI project with Phoenix and have the custom image in its own directory under a project directory. 我已经用Phoenix设置了一个UI项目,并将自定义图像放在项目目录下它自己的目录中。 The main Nerves project is here and the custom firmware is here I've set my MIX_TARGET equal to the custom image name (rpi0_wiringPi) and when running: Nerves主项目在这里 ,自定义固件在这里,我将MIX_TARGET设置为与自定义映像名称(rpi0_wiringPi)相同,并且在运行时:

mix deps.get

I get the error 我得到错误

* (ArgumentError) argument error
:erlang.binary_to_atom(nil, :utf8)
(stdlib) erl_eval.erl:680: :erl_eval.do_apply/6
(stdlib) erl_eval.erl:888: :erl_eval.expr_list/6
(stdlib) erl_eval.erl:240: :erl_eval.expr/5
(stdlib) erl_eval.erl:232: :erl_eval.expr/5
(stdlib) erl_eval.erl:233: :erl_eval.expr/5
(stdlib) erl_eval.erl:888: :erl_eval.expr_list/6
(stdlib) erl_eval.erl:240: :erl_eval.expr/5

And now anything I do regarding mix in that directory throws the same error including mix help. 现在,我对该目录中的混合所做的任何操作都会引发相同的错误,包括混合帮助。 That would tell me something is amiss in the mix.exs file for that project but it's below and appears fine to me 那会告诉我该项目的mix.exs文件中有什么不对劲,但它在下面,对我来说似乎还不错

defmodule Fw.MixProject do
  use Mix.Project

  @target System.get_env("MIX_TARGET") || "host"

  def project do
    [
      app: :fw,
      version: "0.1.0",
      elixir: "~> 1.4",
      target: @target,
      archives: [nerves_bootstrap: "~> 1.0"],
      deps_path: "deps/#{@target}",
      build_path: "_build/#{@target}",
      lockfile: "mix.lock.#{@target}",
      start_permanent: Mix.env() == :prod,
      aliases: [loadconfig: [&bootstrap/1]],
      deps: deps()
    ]
  end

  # Starting nerves_bootstrap adds the required aliases to Mix.Project.config()
  # Aliases are only added if MIX_TARGET is set.
  def bootstrap(args) do
    Application.start(:nerves_bootstrap)
    Mix.Task.run("loadconfig", args)
  end

  # Run "mix help compile.app" to learn about applications.
  def application do
    [
    mod: {Fw.Application, []},
    extra_applications: [:logger, :runtime_tools]
    ]
  end

  # Run "mix help deps" to learn about dependencies.
  defp deps do
    [
      {:nerves, "~> 1.3", runtime: false},
      {:nerves_network, "~> 0.3"},
      {:ui, path: "../ui"},
      {:shoehorn, "~> 0.2"}
    ] ++ deps(@target)
  end

  # Specify target specific dependencies
  defp deps("host"), do: []

  defp deps(target) do
    [
      {:nerves_runtime, "~> 0.8"}
    ] ++ system(target)
  end

  defp system("rpi"), do: [{:nerves_system_rpi, "~> 1.0", runtime: false}]
  defp system("rpi0"), do: [{:nerves_system_rpi0, "~> 1.0", runtime: false}]
  defp system("rpi0_wiringPi"), do: [{:nerves_system_rpi0_wiringPi, path: "../nerves_system_rpi0_wiringPi", runtime: false}]
  defp system("rpi2"), do: [{:nerves_system_rpi2, "~> 1.0", runtime: false}]
  defp system("rpi3"), do: [{:nerves_system_rpi3, "~> 1.0", runtime: false}]
  defp system("bbb"), do: [{:nerves_system_bbb, "~> 1.0", runtime: false}]
  defp system("ev3"), do: [{:nerves_system_ev3, "~> 1.0", runtime: false}]
  defp system("qemu_arm"), do: [{:nerves_system_qemu_arm, "~> 1.0", runtime: false}]
  defp system("x86_64"), do: [{:nerves_system_x86_64, "~> 1.0", runtime: false}]
  defp system(target), do: Mix.raise("Unknown MIX_TARGET: #{target}")
end

This is the directory structure: 这是目录结构:

clicky
  fw
  ui
  nerves_system_rpi0_wiringPi

Since mix is throws the error no matter what I do, I cannot get any assistance from it. 由于混合无论如何都会引发错误,因此我无法从中获得任何帮助。 Is there a way to have mix write a log of what it's doing or something else that would help me troubleshoot the issue? 有没有一种方法可以让混合记录日志记录正在执行的操作或其他可以帮助我解决问题的方法?

I also ran into this error. 我也遇到了这个错误。 Turns out not to have been a problem with mix.exs. 原来不是mix.exs的问题。 I had neglected to set the Nerves networking environment variables(NERVES_NETWORK_SSID, NERVES_NETWORK_PSK and NERVES_NETWORK_MGMT) in config.exs. 我忽略了在config.exs中设置Nerves网络环境变量(NERVES_NETWORK_SSID,NERVES_NETWORK_PSK和NERVES_NETWORK_MGMT)。 Once I fixed that 'mix deps.get' worked. 一旦我修复了“ mix deps.get”,它就会起作用。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 Elixir 构建在 Heroku 审查应用程序失败,出现 (ArgumentError) 参数错误:erlang.binary_to_atom(nil, :utf8) 运行 mix release - Elixir build on Heroku review app fails with (ArgumentError) argument error :erlang.binary_to_atom(nil, :utf8) when running mix release 在安装守护程序后,在elixr守护程序中混合deps.get错误 - mix deps.get error in elixr guardian after guardian installation mix deps.get失败(依赖问题) - mix deps.get fails (dependency issue) 如果Deps是最新的,请阻止使用deps.get混合网络? - Prevent mix deps.get using the network if the deps are up to date? 编写一个在deps.get之后运行的Mix任务 - Write a Mix task that runs after deps.get Elixir:mix deps.get 请求失败(403)并且没有缓存副本 - Elixir: mix deps.get Request failed (403) and no cached copy mix deps.get失败(似乎缺少ssl?) - mix deps.get failed (seems missing ssl?) String.to_atom将基础erlang.binary_to_atom编码选项硬编码为:utf8,为什么? - String.to_atom hardcodes the underlying erlang.binary_to_atom encoding option to :utf8, why? 使用“mix deps.get”安装后无法在 elixir shell 中运行 function - Can't run function in elixir shell after installing with `mix deps.get` mix deps.get 失败,{:failed_connect, [{:to_address, {'repo.hex.pm', 443}}, {:inet, [:inet], {:option, :server_only, :honor_cipher_order}}]} - mix deps.get fails, {:failed_connect, [{:to_address, {'repo.hex.pm', 443}}, {:inet, [:inet], {:option, :server_only, :honor_cipher_order}}]}
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM