Alessandro,
I was able to get an answer quickly from doing this:
ans = Solve[D[v, x] == 0, x]
final = Assuming[{0 <= z <= 1, x >= 0, p > 0, a > 0, a*p < 1, q > 0,
b > 0, b + q >= 1, 0 <= w <= r, 0 <= r <= 1, c > 0,
k > 0, (1 - z*(1 - x))*p*a - (q + b)*(y*x*z*p*a + r + w) > 0},
Refine[ans]]
I am not sure the Assuming changed anything because I still got three solutions for x and I doubt all three are maximums, but by looking at the solutions you will likely be able to add some constraints or get more insight into your problem. Maybe you should do a Simplify instead of Refine in the Assuming and go out for coffee -- it might make it easier to analyze.
I hope this helps.