Débogage du chargement de la bibliothèque native dans Apex
Lorsque vous rencontrez un problème lors du chargement d'une bibliothèque native dans apex_defaults multilib, il est important de vous assurer que votre Le fichier .go est compilé et intégré au processus de construction. Entrons dans les détails.
Comprendre l'implémentation de Go
Le fichier .go que vous avez créé fournit un moyen dynamique d'ajouter une bibliothèque au multilib apex_defaults. Les instructions conditionnelles de la fonction globalFlags sont conçues pour vérifier un nom de périphérique spécifique. Une fois cette condition remplie, la bibliothèque "libabcextractor" sera ajoutée au tableau native_shared_libs.
Vérification de la compilation de build
Confirmez que le fichier .go est bien compilé en vérifiant la présence de son fichier .a compilé dans le répertoire out/soong/.bootstrap. Cela confirme son intégration dans le processus de construction.
Source possible du problème
Après une inspection plus approfondie, il est crucial de s'assurer que les champs de structure du fichier .go sont exportés. (en majuscule). Comme le processus de construction utilise la réflexion pour lire les champs de structure, les champs non exportés restent inaccessibles.
Résoudre le problème
Dans votre première structure, le champ native_shared_libs doit être exporté en mettant une majuscule comme ceci :
<code class="go">type props struct { Multilib struct { First struct { Native_shared_libs []string } } }</code>
Pourquoi est-ce important ?
L'utilisation de champs de structure non exportés empêche le processus de construction d'obtenir des informations par réflexion. En exportant les champs, le processus de construction peut accéder et mettre à jour avec succès le tableau native_shared_libs avec la bibliothèque nécessaire.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!