The siunitx
integration has changed since the answer in question was written. Nowadays, you can use siunitx
conveniently with circuitikz
by loading circuitikz
with the option siunitx
and then using syntax of the form
R=1<\kilo\ohm>
and similarly for the others. These changes make the error message go away. Here's the fully corrected code:
\documentclass{article}
\usepackage[american,siunitx]{circuitikz}
\usetikzlibrary{positioning}
\begin{document}
\begin{circuitikz}[on grid]
\draw (0,1) node {Basic opamp};
% Define coordinates and nodes
\node (vi) {};
\node (a) [right=2 of vi] [label=below:$a$]{};
\node[ground](gnn) [below=1.0 of a,xshift=5mm] {};
\node[ground](gnp) [below=2.5 of vi] {};
\node[op amp](oa) [right=2 of a, yshift=-5mm]{};
\node (vo) [right=0.6 of oa.out]{};
\node[ground](gnd) [below=2 of vo] {};
% connect coordinates, inputs, outputs, and components, i.e. draw the circuit
\draw (gnp) to[V=1<\volt>] (vi);
\draw (vi) to[R=1<\kilo\ohm>] (oa.-);
\draw (oa.+) -| (gnn) node[ground]{};
\draw (oa.out) to[short] (vo);
\draw (vo) to[R=1<\kilo\ohm>] (gnd);
\end{circuitikz}
\end{document}

Update: Maybe my code style is less than ideal or a little bit esoteric, but here is how I personally would code your circuit:
\documentclass{standalone}
\usepackage[american,siunitx]{circuitikz}
\begin{document}
\begin{circuitikz} \draw
(0,0) node[op amp] (oa) {}
(oa.out) to[short] ++(0.6,0) coordinate (vo)
(oa.-) coordinate (a) node[below] {$a$}
to[R,l_=1<\kilo\ohm>] ++(-2,0) coordinate (vi)
++(0,-2.25) node[ground] (gnp) {}
to[V=1<\volt>] (vi)
(vo) to[R=1<\kilo\ohm>] (vo |- gnp)
node[ground] (gnd) {}
(oa.+) to[short] ++(-0.25,0) node[ground] (gnn) {}
;\end{circuitikz}
\end{document}
The output is slightly different because I changed some spacings to my taste:

circuitikz
with optionsiunitx
and use that integration as designed:V=1<\volt>
, for example. The syntax may have changed since that answer was posted, which could explain the error.