Per Anna Beahm of the Decatur Daily, McClain was stopped by officers in Hartselle, Alabama, on a traffic violation for having the windows in his vehicle too tinted when they discovered marijuana and a firearm without a permit during a search.
McClain was formally charged with "second-degree possession of marijuana, carrying a firearm without a permit and a misdemeanor equipment violation" and was being held in Morgan County Jail on $2,000 bail, per Beahm.
The 27-year-old last played in the NFL during the 2015 season with the Dallas Cowboys. He was indefinitely suspended by the league last December for missing a drug test after a previous 10-game suspension for violating the league's substance abuse policy.
After a standout career at the University of Alabama, McClain was drafted eighth overall by the Oakland Raiders in 2010. He played three seasons with the team before signing with the Baltimore Ravens and eventually retiring in 2013.
McClain returned to the NFL in 2014 and spent two seasons with the Cowboys, though off-field problems have kept him away from the game since then.