I am getting this Error when I try to publish this app in the store to an update of existing app. I am using Visual studio Apache Cordova Tools to build the apk and the previous version was published with Intel XDK
It is forbidden that a device upgrading from API levels in range 16-23 to API levels in range 24+ should downgrade from version 48 to version 9, which would occur when
Screen layouts containing any of [small, normal, large, xlarge] and
Features containing all of [android.hardware.screen.PORTRAIT, android.hardware.TOUCHSCREEN].
Please let me know why I am getting this issue. Also possible solutions for this.
Thanks a lot
This is not due to the tool you used for build. I faced the same issue. Here is what I was trying to do.
I had my version 5 covering minSDK as 8 to maxSDK as 23.
I released a version 6 from 14 to 23. In this build I found that app was crashing for version from 14 to 20 but working fine above 21+
So I wanted to create a version 7 covering from 21+ and also enable version 5 in play store console so that rest of the devices running 14 to 20 also can be covered by version 5.
But since we have already published a version which has given coverage for devices running api 14 to 23, we are asking Google to downgrade those devices.
And that is why you see
"It is forbidden that a device upgrading from API levels in range 16-23 to API levels in range 24+ should downgrade from version 48 to version 9, which would occur when "
Please ensure you are not downgrading the devices running those api which you had given an updated version already. Check your build.gradle file or Manifest to confirm the same.
In my case, I solved this by fixing the issues causing the crash and released version 7 that works fine from API 14 to 23. Hope this helps.
Finally I fixed but what I did to fix is uncertain
I tried to update Visual Studio 2015 Tools for Apache Cordova (update 7) and also updated cordova to 5.4.1 and a rebuild fixed the issue in store.
so I am not sure what was the cause and what fixed it. but definitely just serveral rebuilds didnt fix though.
Hope this will help someone in future
Related
I am trying to build an Android app to make a simple prototype. Using Microsoft Visual Studio 2022 (v17.2.4), I create an Android App (Xamarin), blank app. And I target Android 9.0 version.
But, I have compilation errors :
Could not find 2 Android X assemblies, make sure to install the following NuGet packages:
Xamarin.AndroidX.Lifecycle.LiveData
Xamarin.AndroidX.Browser
Problem is that I can't install these NuGet packages because they need Android 12.0 version or greater :
Package Xamarin.AndroidX.Lifecycle.LiveData 2.5.1 is not compatible with monoandroid90 (MonoAndroid,Version=v9.0). Package Xamarin.AndroidX.Lifecycle.LiveData 2.5.1 supports:
monoandroid12.0 (MonoAndroid,Version=v12.0)
net6.0-android31.0 (.NETCoreApp,Version=v6.0)
So I don't know how to solve this. I don't want to target Android 12 version, I need this app to launch on an Android 9.0 device.
What are these libraries the app need to compile? Can I do without them? I don't find any references to them.
Note : I have a warning too on the same way, but not sure if it has to deal with my compilation issue. I Put it anyway, if it can help :
Warning Google Play requires that new applications and updates must use a TargetFrameworkVersion of v11.0 (API level 30) or above. You are currently targeting v9.0 (API level 28).
Please, any idea to solve my issue?
I just want to compile and launch an Android (Xamarin) blank app targeting Android 9.0.
Thank you and have a good day,
I'm finding this a problem too. Just deployed an app (Dec 2022) that targeted 28 / 12 and has min version 10 as appears enforced by Google?
Prob is I've got a lot of people wanting to use the app that can't see it because they have ancient phones (9 or earlier - is that 5 years or more). Seems a bit tough? Is there a way to overcome this.
I assume that the today's Xamarin Android project templates are designed to compile with Android 12. I don't think there is a way to build them with Android 9.
I guess we just have to find another older template?
For my part I had finally took an older project I had instead of creating a new project.
I made an AR app using UNITY 5.6.6 and I'm trying to publish my app to Google Play that need at least API Level 26. I have tried different ways to achieve that targeted level of API but achieved nothing and the Google Console only recognize my app'S API as level 22. Yes, it can be done easily if I use Unity earlier version (I am using Unity 2018 for my other published Apps), but I have to use this particular version because I'm using a little old plugin that only can be stable using those early versions of UNITY.
Here above some ways I've tried on Unity 5.6.6 :
I have tried using SDK tools version 26.1
I have tried using SDK tools version r25.2.5
sdkmanager
Here is my configuration I've tried on Build Settings-Other Settings
config 1
config 2
Here is the message I received from Google Console
google console message
I hope someone have experienced this and solved the problem. I appreciate your time and help alot! Thank you!
it seems unity 5.6 only goes up to api minimum of 25 (android 7.1)
api level 26 was released march of 2017 and unity 2017 was released in February 2017 for comparison
so unity 5.6 was done being updated before the release of api level 26
Yes, this is possible. If you set the Target API to "Automatic (highest installed)", Unity will use the highest version of the Android SDK that it detects on your system. For example, when I build using that setting in Unity 5.6, it uses API Level 28, since that is the highest version of the Android SDK that I have installed on my machine.
So we are working with Xamarin and it seems that after we upgraded our Android project it seemed to change the Target SDK of our app from 21 to 25. We never noticed this and uploaded an .apk into Alpha Testing.
I later noticed this issue, tried to revert to v21 target and now Google is telling me it cannot because of a breaking permission change in v23 (Marshmallow).
I tried disabling the alpha testing and deleting the v25 target, but that did not work.
I did notice that I could at least downgrade to v23 Marshmallow and carry on with my app release.
BUT: According to usage stats I've looked into I'm cutting off support for appx 15 - 25% of devices (take your pick) by only supporting Marshmallow+...
I've done some research around the issue and haven't found a way to solve it yet. I also emailed Google Support in hopes they can help.
Can anyone shed some light on this?
Thanks!!!
#MoGa suggestion was the correct one. Target v23 and set Minimum SDK to 21. This worked very well, and allows me to continue to target all the devices we need to.
so im working on a small utility app to get started on the play store and ive come across a few issues which has led me up to this
It is forbidden to downgrade devices which previously used M permissions (target SDK 23 and above) to APKs which use old style permissions (target SDK 22 and below). This occurs in the change from version 1 (target SDK 23) to version 2 (target SDK 19).
for a small app like this it would be irritating for it to only be available on newer versions considering it doesnt require much. I cant remove the apk nor can i delete the project entirely so the question is should i just publish it for sdk 23 or should i just leave the project alone and make an entirely new one?
You are mistaken. Target SDK means the latest supported version. But it would still allow applications be installed on newer versions. Min SDK version means the earliest supported version.
If Target SDK is set to 23, and update comes out, which is 24, then app would still work on that device, however, whatever new features SDK 24 brings, won't be available.
You can read more at API Guides
I have made an app for android and have kept the minimum sdk version as 7. But to integrate admob, the minimum sdk version required is 13. I read in one of the questions that to fix this, we can change the target in project.properties to 13 i.e. target=android-13 but this gives a warning Attribute minSdkVersion (7) is lower than the project target API level (13). Could this warning be a reason for the app to be rejected?
No, The warning is not a reason to have the app rejected. It is simply a warning that your app may not work on earlier versions of android because of the higher build target.
I have an app with exactly those settings and that warning in the Android Market. And as far as I know (and see from the amount of 5 star ratings) it doesn't cause any problems.