débogage: version: p> Je veux utiliser A.SO en mode de débogage et La bibliothèque merci! P> p> B.SO code> en mode de libération, comment puis-je faire dans
build.gradle code> ou autre? p>
.so code> est la bibliothèque de la troisième bibliothèque, placée dans
Jnilibs / Armeabi / Code>. Je ne connais pas le chronométrage spécifique, donc je ne peux donc pas utiliser
system.loadlibrary () code> méthode. P>
3 Réponses :
Si vous utilisez System.LoadLibrary () code> Pour charger vos fichiers, faites-le:
public final static boolean IS_DEBUG = BuildConfig.BUILD_TYPE.equalsIgnoreCase("debug");
static {
if(IS_DEBUG) {
System.loadLibrary("yourdebugso");
}
else {
System.loadLibrary("yourreleaseso");
}
}
La bibliothèque de SO est la bibliothèque tiers, placée dans Jnilibs / Armeabi /. Je ne connais pas le calendrier des appels spécifiques, je ne peux donc pas utiliser la méthode System.LoadLibrary.
J'ai ajouté une réponse alternative. Je ne supprime pas cette réponse originale car c'est une autre façon de charger différentes donc en fonction du type de construction.
Voici une autre alternative. Ajoutez votre débogage alors fichier comme:
app/src/main/jniLibs/armeabi/<yourrelease>.so
Cela mérite tous les upvotes! Cela semble également être le chemin attendu par défaut également, pas besoin de modifier des chemins dans la version.Gradle
Historiquement, le NDK a pris en charge ARMV5 ( Aussi, note ci-dessous l'anoncement de Google: P> À partir du 1 er août 2019, vos applications publiées sur Google Play devront prendre en charge les architectures 64 bits. Les processeurs 64 bits livrent des expériences plus rapides et plus riches pour vos utilisateurs. L'ajout d'une version 64 bits de votre application fournit des améliorations de performance, crée une place à une innovation future et vous permet de vous préparer à des appareils avec du matériel de 64 bits uniquement. P>
BlockQuote> Donc, vous devez arrêter d'utiliser le hérité pour organiser le type STR> Débogou STRAND> et puis configure votre fichier armée code>), et 32 bits et 64 bits> mips code>, mais la prise en charge de ces abis a été supprimée dans Ndk r17 em> strong>.
armée code> pour vos applications Android. Et commencez à utiliser les ABIS 64 bits.
Voir https://developer.android.com/distribute/best-practices / Développer / 64 bit
et https://developer.android.com/ndk/guides/abis pour plus des détails. p>
mynative-lib.so code> n'importe où que tu aimes, par exemple Ils sont sous
/ utilisateurs /
app / build.gradle code> fichier pour pointer sur les types de construction corrects, c'est-à-dire p>
android {
...
sourceSets {
main {
// put your jni libs that do not distinguish debug and release.
jniLibs.srcDirs += "/Users/<your-usr-name>/android/jniLibs"]
}
debug {
// put your debug version jni libs.
jniLibs.srcDirs += "/Users/<your-usr-name>/android/jniLibs/debug"]
}
release {
// put your release version jni libs.
jniLibs.srcDirs += "/Users/<your-usr-name>/android/jniLibs/release"]
}
}
...
}
Bon! Merci.
Veuillez voter la réponse si vous pensez que c'est «bien». Merci.
Utilisez-vous ce système.LoadLibrary () pour charger vos fichiers afin?
Si oui, vérifiez ma réponse.
@ user1506104 La bibliothèque SO est une troisième bibliothèque, placée dans Jnilibs / Armeabi /. Je ne connais pas le calendrier des appels spécifiques, je ne peux donc pas utiliser la méthode System.LoadLibrary.
Voir Stackoverflow.com/a/52048933/8034839 pour une solution alternative.