Where can I get the list of Unity software versions along with a list of their supported versions of Android (APIs)? I can't find any official documents for this.
Here you go: API Levels
Seems like 2.3.1 is the minimum.
Added screenshot for different API versions:
Bottom left.
I havent found a table that lists all Unity Versions and supported Android SDKs, but i have noticed in 5.6.0f3 Release Notes :
System Requirement Changes: Android minimum version supported updated
to 4.1 (JellyBean)
If you install the predecessor 5.5.6 Android Veriosn 2.3.1 to 6.0 are avaialbe in the player settings.
Related
so I'm using QT to develop an app for Android, and according to Sophos Mobile Security this app is "Built for outdated Android versions: this app doesn't support recent android security features. the app was built for an older version of android"
in qt creator I have android-25 set as the android build sdk (which I wouldn't consider old after all, it's 7.1.1 nougat)
how can I make this warning go away? Is there a way to build my app for a newer version of android without excluding users from using it? (I have 7.1.1, and at least I want to use my app)
thank you for your response in advance.
EDIT:
seems like there are (at least?) 3 spots where I can set an SDK version:
minimum required sdk, as seen on the screenshot here: Qt for android: change the application icon
target SDK version, as seen on the screenshot above
this was the only one I was aware an hour ago: projects->build->build android apk->android build sdk
what they govern, how to set them? should they be the same or different?
Android suggests you use the latest sdk version for targetSdkVersion and for build-tools version (they have to match). In fact, Google Play now requires you to target at least SDK 26. This will not prevent older devices from running app. Actually it will be more problematic for newer devices, as you are stating that app has been fully tested and can run on newer devices, and does not need backward compatibility. See https://developer.android.com/distribute/best-practices/develop/target-sdk for more details.
As for minSdkVersion, that is what will determine the earliest devices supported, and you should try to keep it as low as you can, and as 95-99% of your users.
I am using Visual Studio with Xamarin, as shown in the picture, the latest available android version for me is JellyBean, this is preventing me from using quite some new features. I have set the target version to 6.0 and minimum required version to 4.0.3. Current Configuration in Visual Studio
Does anyone has experience how to solve this issue?
Many thanks!
Greeting,
Kyle
the screenshot at version selection
This happens because of the current referenced Mono.Android.dll in your project. You are most likely setting your <TargetFrameworkVersion> to only Jellybean here. That or the highest level of Android you have installed is Jellybean and it's using the latest platform available via the following in your .csproj:
<AndroidUseLatestPlatformSdk>True</AndroidUseLatestPlatformSdk>
EX:
If you set your <TargetFrameworkVersion> in your .csproj to Jellybean:
<TargetFrameworkVersion>v4.3</TargetFrameworkVersion>
Or via the GUI in Properties -> Application -> Compile using Android version:
Android 4.3 (Jelly Bean)
You would then only have a reference to the 4.3 version of Mono.Android.dll which only includes Android.OS.BuildVersionCodes enums up to Jellybean.
Thus if you had changed your <TargetFrameworkVersion> to v6.0 you would have access to all the current Android.OS.BuildVersionCodes enums up to Marshmallow. You may need to ensure that you have these API levels installed in your Android SDK, and that the respective <TargetFrameworkVersion> is the correct version of the respective API version you'd like to use in the enum.
Android
In the Unity editor, the lowest available Android version for debugging is Android 2.3.1 In my case, I have a phone running an older version of Android and I intend to publish my game to a wide audience. With the lowest version being 2.3.1, I see a problem publishing my games to older smartphones which still occupy a considerable size of the market share. My question is: Is there a way to publish my game to older versions of Android? Or is it impossible?
Versions later than Unity 4.2.x don't support Android versions earlier than 2.3.x. So if your project relies on functionality only present in 4.3.x and higher, you're out of luck.
Otherwise you can still download a 4.2.x or earlier version of Unity and create your builds with that.
Which SDK do I use if I'm developing for a device running on Android 3.3? The closest, version number-wise, is 3.2.
You use 3.2. The Android SDK only has a new version if it includes "new" features from the last version. Therefore, you just round down to the nearest SDK. 4.0.4 uses 4.0.3, 2.3.7 uses 2.3.3, and 3.3 would use 3.2.
Note, however, there is no publication of Android 3.3. Take a look at the API levels documentation for a list of the valid versions. (Thanks to #uDaY for the link + info.)
It doesn't exist... that is, there is no Android 3.3.
I've already asked Google support about this and they were no help ...
In my manifest I have
uses-sdk android:minSdkVersion="10"
which corresponds to version 2.3.3 however when I publish the app to the market it says that the minimum version required is 2.3.7 and uses that in the filter.
How do I tell the market to use 2.3.3 as the minimum version ??
Thanks.
2.3.7 is the latest revision of Gingerbread_MR1. I would recommend switching to SDK version 9 if supporting 2.3.3 is really that important.
I suspect your manifest filter entries (or) API used is compatible of 2.3.7 than 2.3.3 (I suspect you might upgraded to 2.3.7) which prevents using 2.3.3 even though you use min-sdk 10.
see this comment from documentation
o use APIs introduced in Android 2.3.3 in your application, you need compile the application against the Android library that is provided in the Android 2.3.3 SDK platform.