Skip to content

Android SDK 29 support #4926

Closed
Closed
@KristianDD

Description

@KristianDD

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 (has Manifest.xml and include.gradle but no .aar in package). This can be emulated installing nativescript-mapbox, deleting the .aar file from node_modules/nativescript-mapbox and then copy the Manifest.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.
  • 4. Same as 3 but with tns plugin build - should clone a plugin that has platforms\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

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions