luval,
You need to "protect" your functions with ArgMax from the solver trying to evaluate it -- it needs to be reserved for only numbers. I would do this:
eq1[v2n_Real] := ArgMax[f1[r, v1, v2n, x1star, x2star], v1]
eq2[v1n_Real] := ArgMax[f2[r, v1n, v2, x1star, x2star], v2]
Note that eq1 and eq2 will only evaluate when v2n and v1n are real numbers.
I do not get a solution from your equations but if I change a sign in one, I do get an answer. (Maybe there is a sign or equation problem??). But Mathematica can now solve these equations. You will need to look at the origin of your equations to see why there is no solution as they were originally written.
sol2 = FindRoot[{v1n == eq1[v2n],
v2n == -eq2[v1n]}, {{v1n, 1}, {v2n, -1}} ]
to get
{v1n->0.539353,v2n->-1.13056}
You need to use FindRoot because the equations are now only numerical. If you do not "protect" the equations by putting _Real in the definition, you will get an error when Mathematica first tries to evaluate the equations symbolically.
I hope this helps.
Regards
Neil