NativeScript / NativeScript/nativescript-cli

CLI 8.2.x does not respect the targetSdk from AndroidManifest.xml

Ouverte
#5,664 0 commentaires 0 réactions 0 personnes assignées Voir sur GitHub

Personne n'a encore pris cette issue.

bug-pending-triage
Langage dominant
JavaScript
Étoiles
1.1k
Forks
204
Merge moyen
1 j 9 h
PR mergées (30 j)
8

Description

Issue Description

After we upgraded to {N} 8.2.2 we found that during build, the CLI sets the targetSdk to 31 instead of respecting the value in App_Resources/Android/src/main/AndroidManifest.xml which was in our case set to 30.

The merged, final manifest in the APK has targetSdk 31

This is read from platforms/android/gradle.properties, defined as NS_DEFAULT_COMPILE_SDK_VERSION=31, applied in the platforms/android/app/build.gradle file through

def computeTargetSdkVersion = { -> project.hasProperty("targetSdk") ? targetSdk : NS_DEFAULT_COMPILE_SDK_VERSION as int }

Workaround: specify targetSdk in the config/android/resources/gradle.properties, e.g.

targetSdk = 30
Reproduction

in App_Resources/Android/src/main/AndroidManifest.xml set

<uses-sdk
    android:minSdkVersion="26"
    android:targetSdkVersion="30"/>

run ns build android

check platforms/android/app/build/intermediates/manifest_merge_blame_file/debug/manifest-merger-blame-debug-report.txt or check the generated APK and it's embedded AndroidManifest.

Relevant log output (if applicable)
from `platforms/android/app/build/intermediates/manifest_merge_blame_file/debug/manifest-merger-blame-debug-report.txt` 


7    <uses-sdk
7-->/me/dev/test/platforms/android/app/src/main/AndroidManifest.xml:13:5-15:44
8        android:minSdkVersion="26"
8-->/me/dev/test/platforms/android/app/src/main/AndroidManifest.xml:14:13-39
9        android:targetSdkVersion="31" />
9-->/me/dev/test/platforms/android/app/src/main/AndroidManifest.xml:15:13-42
Environment

No response

Please accept these terms

Guide de contribution

Ouvrir le guide de contribution

Par où commencer

  1. Lisez l'issue en entier, puis le guide de contribution du projet.
  2. Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
  3. Forkez le dépôt et travaillez sur une branche.
  4. Ouvrez une pull request qui référence le numéro de l'issue.

Piste de recherche

Inspectez platforms/android/gradle.properties et platforms/android/app/build.gradle, en vous concentrant sur computeTargetSdkVersion. Reproduisez le problème avec App_Resources/Android/src/main/AndroidManifest.xml et ns build android, puis vérifiez le rapport manifest-merger-blame ou l’APK généré. C’est terminé lorsqu’une targetSdkVersion du manifeste de 30 reste à 30 au lieu de devenir 31.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Évaluation

Stack technique
android, javascript
Domaine
build-system, cli, mobile-dev
Type d'issue
Bug
Difficulté
3/5
Temps estimé
1-2 jours
Activité
À l'abandon
Clarté
Clairement spécifiée
Accessibilité débutants
42/100

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.