Jeff Stenroos, an officer with the Los Angeles Unified School District, was arrested and booked at the central jail, KABC-TV, Los Angeles, reported.
The purported shooting last week triggered hours of lockdowns at schools and a massive manhunt. A $100,000 reward was offered for information leading to the arrest of the supposed shooter.
Stenroos, who was wearing a bullet-proof vest, was treated for a bruise on his chest.
The Los Angeles Police Protective League issued a statement calling Stenroos "a disgrace to the badge."
"The law enforcement community is disgusted upon learning that Mr. Stenroos filed a false police report and apparently may have shot himself," the group said in a statement. "His lies set into motion the largest search for a suspect in recent history and inconvenienced thousands of people for hours."
An area 7 miles on each side of the school was effectively blocked off for hours during the search.
Couple mistakenly served bag of cash at McDonald's drive-thru
Gal Gadot cast as Wonder Woman for 'Batman vs. Superman'