[Android] Utilisation de la carte Baidu

Tutoriel sur le site officiel de la carte Baidu:
http://lbsyun.baidu.com/index.php?title=androidsdk/guide/create-project/attention

Après avoir ouvert l'ancien projet et mis à jour vers AndroidX, le message d'erreur est le suivant:

2020-10-22 13:38:57.838 15332-15332/com.ding.admin.newfieldtest E/NativeLoader: found libBaiduMapSDK_base_v5_2_0.so error
2020-10-22 13:38:57.839 15332-15332/com.ding.admin.newfieldtest E/zygote64: No implementation found for int com.baidu.mapsdkplatform.comjni.tools.JNITools.initClass(java.lang.Object, int) (tried Java_com_baidu_mapsdkplatform_comjni_tools_JNITools_initClass and Java_com_baidu_mapsdkplatform_comjni_tools_JNITools_initClass__Ljava_lang_Object_2I)
2020-10-22 13:38:57.841 15332-15332/com.ding.admin.newfieldtest E/AndroidRuntime: FATAL EXCEPTION: main
    Process: com.ding.admin.newfieldtest, PID: 15332
    java.lang.UnsatisfiedLinkError: No implementation found for int com.baidu.mapsdkplatform.comjni.tools.JNITools.initClass(java.lang.Object, int) (tried Java_com_baidu_mapsdkplatform_comjni_tools_JNITools_initClass and Java_com_baidu_mapsdkplatform_comjni_tools_JNITools_initClass__Ljava_lang_Object_2I)
        at com.baidu.mapsdkplatform.comjni.tools.JNITools.initClass(Native Method)
        at com.baidu.mapsdkplatform.comjni.tools.a.b(Unknown Source:6)
        at com.baidu.mapsdkplatform.comapi.a.<clinit>(Unknown Source:23)
        at com.baidu.mapsdkplatform.comapi.a.a(Unknown Source:0)
        at com.baidu.mapsdkplatform.comapi.c.a(Unknown Source:17)
        at com.baidu.mapapi.SDKInitializer.initialize(Unknown Source:2)
        at com.baidu.mapapi.SDKInitializer.initialize(Unknown Source:1)
        at com.ding.admin.newfieldtest.MainActivity.onCreate(MainActivity.java:178)

Référence de la solution:
https://blog.csdn.net/qq_32365567/article/details/70224862?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.add_param_isCf&depth_1-istm_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.add_param_isCf&depth_1-istm_sourcenpc. blog-BlogCommendFromMachineLearnPai2-1.add_param_isCf

Lorsqu'une erreur comme un certain fichier .so ne peut pas être trouvée, j'ai trouvé plusieurs solutions, veuillez noter pour votre référence.
Un: le fichier .so ne correspond pas au package jar. Je crois que tout le monde ne commettra pas ce problème. Cela oblige tout le monde à faire attention, donc je n'en parlerai pas ici.
2: Copiez le fichier libs téléchargé par Baidu directement dans le projet, il y a un fichier armeabi qui contient tous les fichiers .so. De cette façon, il n'y aura aucun problème de ne pas pouvoir trouver un certain fichier .so, et il ne signalera pas d'erreur et ne fonctionnera pas normalement.
Trois: si vous pensez que ce n'est pas bon pour la mise en page du projet, de nombreuses personnes créeront des fichiers jniLibs dans src-main, puis y placeront ces fichiers de ressources armeabi. Mais si ce type d'erreur est signalé après l'avoir mis de cette manière, alors vous devez supprimer sourceSets {main {jniLibs.srcDirs = ['libs']}} dans le buildGradle de l'application. Bien sûr, vous avez besoin des dépendances {compiler fileTree (include: ['* .jar'], dir: 'libs')} ici.
Quatre: Si quelqu'un d'autre ignore le fichier jnilibs lors de la soumission du code, le fichier .so qu'il contient ne sera pas soumis et il n'y aura pas de fichier .so après la mise à jour, et cette erreur sera signalée. Tout d'abord, vérifiez si votre projet contient un fichier .so.

Insérez la description de l'image ici

Insérez la description de l'image ici

Je suppose que tu aimes

Origine blog.csdn.net/qq_30885821/article/details/109220653
conseillé
Classement