I have an app that I released a couple years ago (plus another legacy app that I maintain for one of my company's clients). My game has a long-ish title, but it was fine until some asshat at Google decides that 33 characters is too long. On top of that, every time I'm forced to update the target SDK, I need to spend several hours figuring out a bunch of new build errors. This is not how I wanted to spend my vacation time.
It's not an arbitrary metric though... They want apps to stop using old APIs so they can deprecate them at some point. Platforms that aren't Windows (and Linux, to a lesser extent) don't have the resources to support old stuff forever. Be glad they don't make breaking changes more frequently, like Apple does :)
Google's definition of "Old API" though is like, 3 months. I don't know Apple but as mentioned in my other comment when I did stuff on GCP I remember breaking changes coming every month or 2. It's honestly terrible. Pub/Sub was the worse, a message broker that had breaking changes so frequently that I just spun up a kafka instance.
I get what you're saying, you should stay up to date, but Google just gives devs the middle finger. It really does feel like "Lol this isn't even a feature you use, and it's not like it's a security fix or anything, our developers are just bored and rewrote something again so drop everything now and go fix it."
As the other guy said, we're not talking hugely outdated. And I don't see why they should have fewer resources for supporting old stuff. Android has more users than Windows. Less corporate users, sure, but still, I imagine Google could easily finance that and I do not see it as rational that they don't.
Like, if Google hadn't made the Play Store a monopoly, devs would gladly be distributing elsewhere. Many of those who aren't looking for commercial success, do.
With arbitrary metric, I mean that Google doesn't detect whether you're actually using deprecated APIs, they just detect that you've declared to be targeting Android API version 27 and that 27 is smaller than 31. Especially with smaller apps, you may have to go through the whole release process just to increment that number, with no actual code changes.
Another rather arbitrary metric is how often and quickly they want to deprecate APIs. In other ecosystems, you update your app to fix security issues or because you're developing new features. On Android, you often end up updating, because your Googly overlord demands an update.