This app isn't available for your device because it was made for an older version of Android
Asked Answered
T

3

42

Some users reported this error when attempting to install my app from Google Play store. I could not find any reference to it, so documenting the solution here.

Tien answered 21/2, 2023 at 2:51 Comment(0)
T
40

I found this little gem in a list of notifications in google play developer:

Starting from 1 Nov 2022, apps that don't target an API level within two years of the latest Android release (API 29 and below) won't be available to new users with devices running Android versions newer than your app's target API level. This means that new users won't be able to discover or install your app on Google Play

Wow! That is going to cause a heck of a lot of apps to stop working, and require a lot of development work on apps that are perfectly functional and don't otherwise need updating.

Solution is to update your targetSdkVersion in your app.

And remember to do this every 2 years for all your apps!

(For my build tools I find searching everywhere using Android Studio for 'targetSdkVersion' and updating the numbers from 29 to 31 is the simplest approach, then fixing any resulting build errors, which in this case meant I had to upgrade Android Studio as well due to java version 11 being required for android 31 - refer unrecognized Attribute name MODULE (class com.sun.tools.javac.util.SharedNameTable$NameImpl)).

Tien answered 21/2, 2023 at 2:51 Comment(2)
It may not just be build errors. There are runtime behavior changes too, so make sure to go through a full test cycle.Parolee
Just to add this page that describes the change. Also, if you need more time, an extension is available until May 2023, in Play Console. You'll find a message in your inbox titled "Target API level policy changes will impact the availability of your app"Bremen
A
29

I ran into a similar error. We had an APK with API 31 in the internal test release section. In the Google Play console and devices with Android 12 and 13, we were presenting that message when trying to download the app:

This app isn't available for your device because it was made for an older version of Android.

The way it was solved is to release this version with API 31 or higher to production. This is because the store has a bug in it, and if you currently have an old APK in production with an API of 29, for example, this will generate an incompatibility with the others APKs that are in the test segments. That is, when launching to production, the new APK deactivates the old version that creates a conflict, and there will no longer be a problem when downloading on the new devices.

If you see this test as risky, you can make a progressive launch of 1% in the production segment.

Abroach answered 23/3, 2023 at 5:3 Comment(6)
Yes, same here. I've tested the same app works fine in a fresh new Play Store account but not in one with an old legacy production release.Circumcision
Did you inform Google about that bug?Objectivity
I can confirm releasing the new app to production removed the incorrect "...made for an older version of Android" message for our app as well. Thank you, @Abroach for posting this. I would have never thought to try releasing it to prod as a fix.Bombardier
Same here, I have an app in API of 29, recently I updated my project with the most recent API, tested in emulator fine, but, in the beta internal test I received this message.Teleprinter
Same here and the bug is still there. Thanks for your answer. Saved my time.Ygerne
Thank you so much - this seems to be the issue we're encountering now. Here's some discussion on the Google support forum I could find: support.google.com/googleplay/android-developer/thread/… support.google.com/googleplay/android-developer/thread/… If anyone finds a link to report this to Google please post!Chatav
N
1

My current release app has both compileSdk and targetSdk set to API 30. I have plenty of users on Android 13 and Android 12 downloading and install my app on a weekly basis. But last week I got a user running Android 12 who got the same OP error. The current version of my app was last published to the Play store on Nov 11, 2022 - so well within the two years others mentioned in above responses.

In my play console, I have a Policy Issue that states Violation: App must target Android 12 (API Level 31) or higher as of August 30th

So take this for what its worth....and get it updated. But what is odd is I have other users on Android 12 and 13 who have been able to download my app without any issue.

Neurotomy answered 10/9, 2023 at 19:15 Comment(3)
Turned out the 2 year “policy” was a one off and now they have changed it to an even more restrictive policy of 1 year. What’s next, 6 months?Tien
Same on our side with API Level 33 - upgraded, released in Internal Track but testers not able to install due to: made for an older version. I found this one support.google.com/googleplay/android-developer/thread/…. So first put to production, then you can do internal testing - nice workflowJovian
I bet you this is a strategic purchasing maneuver. 1. Apps not updated won't run on newer devices. 2. Force apps to run on the newest OS. 3. Newer apps won't run on older devices. 4. Force users to buy new phones because the apps they want will no longer run or get updated on older devices. Two years I could understand....but 1 year. ..come on, thats aggressive as hell.Neurotomy

© 2022 - 2024 — McMap. All rights reserved.