-
-
Notifications
You must be signed in to change notification settings - Fork 198
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 androidshould be the same as in previous version. Can add a plugin that needs build (hasManifest.xmlandinclude.gradlebut no.aarin package). This can be emulated installingnativescript-mapbox, deleting the.aarfile fromnode_modules/nativescript-mapboxand then copy theManifest.xmlfrom here.- a.
tns build android --compileSdk 16where SDK16 is installed - b.
tns build android --compileSdk 25where 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 16where SDK16 is installed - b.
tns plugin build --compileSdk 25where 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.