J'ai eu ce problème la dernière fois après la mise à niveau de la version NDK vers la dernière version dans Android Studio. J'ai également trouvé une solution pour résoudre ce problème. Si quelqu'un a ce problème, j'espère que c'est la meilleure question et la meilleure réponse pour vous. S'il vous plaît vérifier ma réponse.
J'ai trouvé la solution en lisant le release note here pour la révision 16 de NDK.
Si vous configurez votre projet avec Application.mk
, ajoutez ce qui suit dans votre fichier Application.mk
:
APP_STL := c++_shared
Si vous utilisez CMake
via Gradle, ajoutez ce qui suit à votre build.gradle:
externalNativeBuild {
cmake {
cppFlags ""
arguments "-DANDROID_STL=c++_shared"
}
}
Pour vous tenir au courant de la nouvelle version et de la note, veuillez suivre cet Historique des révisions du NDK pour appliquer les modifications.
J'espère que cela peut résoudre votre problème.
Selon la documentation Android , il s'agit d'un problème connu, dû au fait que le plugin Gradle inclut toujours les ABI non pris en charge par défaut. armbeabi était obsolète en NDKr16 et supprimé en 17, d'où l'avertissement. Pour résoudre ce problème, répertoriez vos architectures prises en charge sous splits.abi
:
...
splits {
abi {
...
reset()
include "x86", "armeabi-v7a", ...
}
}
J'ai eu le même problème et résolu en modifiant le fichier build.gradle du module en ajoutant ci-dessous le programme d'installation
Android {
...
splits {
abi {
enable true
reset()
include 'x86', 'x86_64', 'armeabi-v7a', 'arm64-v8a' //select ABIs to build APKs for
universalApk true //generate an additional APK that contains all the ABIs
}
}
project.ext.versionCodes = ['armeabi': 1, 'armeabi-v7a': 2, 'arm64-v8a': 3, 'mips': 5, 'mips64': 6, 'x86': 8, 'x86_64': 9]
Android.applicationVariants.all { variant ->
variant.outputs.each { output ->
output.versionCodeOverride =
project.ext.versionCodes.get(output.getFilter(com.Android.build.OutputFile.ABI), 0) * 1000000 + Android.defaultConfig.versionCode
}
}
}
Pour votre référence, bonne chance.