Any smooth $2n$-manifold $M$ comes with a well-defined map $f:M\rightarrow BGL_{2n}(\mathbb{R})$ (up to homotopy) classifying its tangent bundle. Since $GL_{2n}(\mathbb{R})$ deformation-retracts onto $O(2n)$, $BGL_{2n}(\mathbb{R})\simeq BO(2n)$, which is a cute way of proving that every smooth manifold admits a Riemannian metric. An almost-complex structure, on the other hand, is equivalent to a reduction of the structure group from $GL_{2n}(\mathbb{R})$ to $GL_n(\mathbb{C})$, which is the same as asking for a lift of the classifying map through $BU(n)\simeq BGL_n(\mathbb{C})\rightarrow BGL_{2n}(\mathbb{R})$.
Can we detect the nonexistence of a lift entirely using characteristic classes? If not, what else goes into the classification?
I'd imagine these don't suffice themselves. If I'm remembering correctly we have $H^*(BO(2n);\mathbb{Z}/2)=\mathbb{Z}/2[w_1,\ldots, w_{2n}]$ and $H^*(BU(n);\mathbb{Z})=\mathbb{Z}[c_1,\ldots, c_n]$ and the only easy (i.e. non-cohomology operational) result relating these that I know is that $w_{2n}(TM) \equiv_2 c_n(TM)$, so this holds in the universal case $i^* : H^*(BO(2n);\mathbb{Z}/2) \rightarrow H^*(BU(n);\mathbb{Z}/2)$. I've heard that this problem is indeed solved. Maybe it does take some characteristic class & cohomology operation gymnastics, or maybe it needs extraordinary characteristic classes. Or maybe there's yet another ingredient in the classification...?