Cain, being a farmer, offers the produce of his fields, while Abel offers the first born lamb of his finest stock. But God only accepted Abel's offering. Upon reading this the first question that came into mind was; Why didn't he accept both sacrifices? It is stated in Genesis Chapter 3:21 that when Adam and Eve were using fig leaves to cover their nakedness, God had shown that even if they covered themselves it never truly covered their nakedness. But it is also stated in Leviticus 2:1-4, God accepted the offering of grain and oil.
Now you wonder why He says this and the answer is very simple; spiritual truth. He showed Adam and Eve that only He could cover them, that as long as they put their trust in Him nothing could harm them. Back to Cain and Abel, it is said that God had instructed both boys to sacrifice animals, stated in Hebrews 9:22," . . .without the shedding of blood is no remission." God, himself, had killed animals and made clothes for Adam and Eve from the skins. This was taught that the covering of their sin could only be accomplished by the shedding of blood.
But Cain, being a farmer did not see the accomplishment for himself and started to rebel against God's wish, he started to offer things that he worked for, soon Cain became jealous of Abel being in Gods favor that his heart turned dark with envy and jealousy that he resulted in killing his own brother.
After Cain killed his own brother God came before him and asked him about where Abel was. Cain must have understood why God rejected his offering even when God made the effort to reach out to Cain, and questioned him why was he so angry. In Genesis 4:7 God promises to accept Cain's offering "if he does