android
android copied to clipboard
Android Runtime doesn't play nice with productFlavors
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 aCannot read property 'getInstance' of undefinederror.
Expected behavior Behavior should be the same as without productFlavors.
Sample project https://github.com/jerbob92/nativescript-productflavor-bug