Solution 1:

Spanish is an adjective, so no article. A Spanish man is a Spaniard. Note that for many other nationalities, the form of the adjective and the noun is the same:

  • American, an American
  • German, a German
  • Italian, an Italian
  • Russian, a Russian
  • Chinese, a Chinese
  • Japanese, a Japanese
  • Greek, a Greek

I have a feeling that for most nationalities the adjective and the noun have the same form, and only in a few cases are the forms of the adjective and noun distinct, e.g.:

  • Danish, a Dane
  • English, an Englishman
  • French, a Frenchman
  • Irish, an Irishman
  • Scottish, a Scot(sman)
  • Spanish, a Spaniard
  • Welsh, a Welshman

Solution 2:

Yes, adding an "a" before Spanish, would be wrong. That could be reworded as I'm a Spaniard. See http://dictionary.cambridge.org/dictionary/british/spaniard?q=Spaniard

Solution 3:

"Spanish" is an adjective, not a noun. You cannot use either an indefinite article with it. You can say:

  • I am Spanish
  • I am a Spaniard

However, the two sentences are not equivalent. The first implies descent, while the second implies citizenship or nationality. I could very easily be of English descent, and yet be a Spaniard, if I changed my citizenship, for example.