IMO school is the problem that causes children not to learn. At my expensive private schools I learned that bullying is OK when it's older kids, prefects and teachers doing it, I learned to hate sport, I learned that life isn't fair and that people are not all good ( good lessons to learn early in life ) and I learned to play the trumpet badly. Lessons on geography, maths, science, history, biology etc educated me not at all.
Can't call me stupid or incapable of learning, given my future careers requiring qualifications needing years of study.
I learned almost nothing in school because the teachers were useless, and unable to motivate me, and it's not as though I was any sort of rebel.
So, in reply to your post, make schools a place kids want to learn, expel the actual bad kids, and the problem will IMO be solved.