NativeScript / NativeScript/android

Android Runtime doesn't play nice with productFlavors

Ouverte
#1,597 0 commentaires 1 réaction 1 personne assignée Voir sur GitHub

@vmutafov y travaille déjà.

Depuis le 19/5/2020.

Langage dominant
C++
Étoiles
563
Forks
144
Merge moyen
10 h 46 min
PR mergées (30 j)
14

Description

Environment

  • CLI: 6.5.0
  • Cross-platform modules: 6.5.1
  • Android Runtime: 6.5.0

Describe the bug
When adding productFlavors to your build.gradle, something odd seems to happen in the metadata generation and some classes aren't available to NativeScript anymore.

To Reproduce

  • Create a sample project where you call console.log(com.tns.NativeScriptApplication.getInstance()); from Typescript
  • Test the app, it should work and return the application instance
  • Now add productFlavors (they don't even have to include any specific settings) to your project, like this:
android {
  defaultConfig {
    minSdkVersion 17
    generatedDensities = []
  }

  flavorDimensions "api"

  productFlavors {
    minApi21 {
      dimension "api"
      versionNameSuffix "-minApi21"
    }

    minApi17 {
      dimension "api"
      versionNameSuffix "-minApi17"
    }
  }

  aaptOptions {
    additionalParameters "--no-version-vectors"
  }
}

android.variantFilter { variant ->
    // Don't build minApi21 apk for debug.
    if(variant.buildType.name.endsWith('debug') && variant.name.contains("minApi21")) {
        variant.setIgnore(true);
    }
}
  • Remove your platforms folder
  • Run the app again, now the com.tns.NativeScriptApplication.getInstance() will result in a Cannot read property 'getInstance' of undefined error.

Expected behavior
Behavior should be the same as without productFlavors.

Sample project
https://github.com/jerbob92/nativescript-productflavor-bug

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.

Évaluation

Cette issue n'a pas encore été évaluée.

Recevez les nouvelles issues par e-mail

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