Description
Is your feature request related to a problem? Please describe.
NativeScript should be able to build applications with Android SDK29
Describe the solution you'd like
The Android SDK29 should be chosen by default if available on the machine.
Describe alternatives you've considered
No alternatives
Additional context
There are currently two places where we keep the compatible Android SDK versions - NS CLI and NS Doctor. This makes the update difficult and no straight forward. There is also a lot of repetition of code in android-tools-info modules inside the CLI and NS Doctor. For future updates it will be beneficial to extract the logic at one place.
If the targeted device is APK Level 29(Android 10) the application should use the next
version of NativeScript Adnroid Runtime!
Acceptance Criteria
Valid values for --compileSdk are >=28. (should be installed)
Valid values for --sdk are >= 17 <=29 (corresponds to targetSdk and not mandatory to be installed)
Valid Android build tools on the machine are >=23 (should be installed)
- 1. SDK 29 should be chosen by default if available on the machine. You can verify that SDK 29 was used by using Analyze APK inside Android Studio and check the values inside Manifest.xml.
- 2. Deploy, run, debug and test should work as expected. - test against an API 28 and API 29 devices.
- 3. Validations from the doctor for
tns run android
should be the same as in previous version. Can add a plugin that needs build (hasManifest.xml
andinclude.gradle
but no.aar
in package). This can be emulated installingnativescript-mapbox
, deleting the.aar
file fromnode_modules/nativescript-mapbox
and then copy theManifest.xml
from here.- a.
tns build android --compileSdk 16
where SDK16 is installed - b.
tns build android --compileSdk 25
where SDK25 is not installed - c. Rename android sdk folder.
- d. Remove all SDKs that are supported by NS >= 17 <=29
- e. Remove SDKs above SDK 27
- f. When SDK 28 and 29 are available, if project is with Android Runtime 6.0.0, SDK28 should be used and when project is with Android Runtime 6.1.0 SDK29 should be used.
- a.
- 4. Same as 3 but with
tns plugin build
- should clone a plugin that hasplatforms\Android\Manifest.xml
. - for example this one.- a.
tns plugin build --compileSdk 16
where SDK16 is installed - b.
tns plugin build --compileSdk 25
where SDK25 is not installed - c. Rename android sdk folder.
- d. Remove all SDKs that are supported by NS >= 17 <=29
- e. Remove SDKs above SDK 27
- a.