J'essaye de générer un apk fractionné en react-native et j'obtiens cette erreur après avoir défini ces deux propriétés:
def enableSeparateBuildPerCPUArchitecture = true
def enableProguardInReleaseBuilds = true
Voici l'erreur que j'obtiens:
Impossible d'appeler la méthode multiply () sur un objet nul
Ouvrir le fichier
En cliquant sur le fichier ouvert, cela me pointe vers ce code:
defaultConfig { applicationId PACKAGE_NAME minSdkVersion rootProject.ext.minSdkVersion targetSdkVersion rootProject.ext.targetSdkVersion versionCode VERSION_CODE multiDexEnabled true versionName MY_VERSION_HERE ndk { abiFilters "armeabi-v7a", "x86", "arm64-v8a", "x86_64" } } splits { abi { reset() enable enableSeparateBuildPerCPUArchitecture universalApk false // If true, also generate a universal APK include "armeabi-v7a", "x86", "arm64-v8a", "x86_64" } } buildTypes { release { minifyEnabled enableProguardInReleaseBuilds proguardFiles getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro" signingConfig signingConfigs.release } } applicationVariants.all { variant -> variant.outputs.each { output -> // For each separate APK per architecture, set a unique version code as described here: // http://tools.android.com/tech-docs/new-build-system/user-guide/apk-splits def versionCodes = ["armeabi-v7a":1, "x86":2, "arm64-v8a":3, "x85_64":4] def abi = output.getFilter(OutputFile.ABI) if (abi != null) { // null for the universal-debug, universal-release variants output.versionCodeOverride = versionCodes.get(abi) * 1048576 + defaultConfig.versionCode } } }
Mes configurations sont comme ceci:
if (abi != null) { // null for the universal-debug, universal-release variants output.versionCodeOverride = versionCodes.get(abi) * 1048576 + defaultConfig.versionCode }
S'il vous plaît, aidez-moi ou au moins donnez-moi une idée de pourquoi cela devrait se produire.
3 Réponses :
J'ai fini de créer un autre projet, d'installer tout le référentiel et cela a fonctionné.
Je ne sais toujours pas pourquoi cela se passait en premier lieu.
vous devez changer "x85_64" -> "x86_64" dans le paramètre applicationVariants.all
Débogage ici, j'ai ajouté une ligne:
def versionCodes = ["armeabi-v7a":1, "x86":2, "arm64-v8a":3, "x86_64":4]
avant la ligne output.versionCodeOverride
et j'ai vu l'abi nécessaire. Ensuite, ajouté l'abi en ligne def versionCodes
. Il se termine comme:
println abi