Let me give some examples to give you guys a good idea of my question.
My friend says that a sentence like this sounds weird.
- I have built my house for 2 years.
He says I should say this.
- I have been building my house for 2 years.
I understand why the sentence he gave me is correct. I do not understand why they cannot both be used because of these two sentences.
I have lived here for 2 years.
I have been living here for 2 years.
Native speakers tell to me that these mean almost the same.
Why is "I have..." not acceptable for the first sentence. How does this apply to other sentences?
- I have slept for 2 hours.
- I have been sleeping for 2 hours.
One is not okay?