[Android] Uso del mapa de Baidu

Tutorial del sitio web oficial del mapa de Baidu:
http://lbsyun.baidu.com/index.php?title=androidsdk/guide/create-project/attention

Después de abrir el proyecto anterior y actualizar a AndroidX, el mensaje de error es el siguiente:

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)

Referencia de la solución:
https://blog.csdn.net/qq_32365567/article/details/70224862?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.add_param_isCf&depth_1-utm-ant_source=distribute blog-BlogCommendFromMachineLearnPai2-1.add_param_isCf

Cuando no se puede encontrar un error como un determinado archivo .so, he encontrado varias soluciones, anótelas para su referencia.
Uno: el archivo .so no coincide con el paquete jar. Creo que no todos cometerán este problema. Esto requiere que todos tengan cuidado, por lo que no hablaré de eso aquí.
2: Copie el archivo libs descargado por Baidu directamente en el proyecto, hay un archivo armeabi que contiene todos los archivos .so. De esta forma, no habrá problema de no poder encontrar un determinado archivo .so, no se reportará ningún error y el funcionamiento será normal.
Tres: si cree que esto no es bueno para el diseño del proyecto, muchas personas crearán archivos jniLibs en src-main y luego colocarán estos archivos de recursos armeabi en él. Pero si se reporta este tipo de error después de ponerlo de esta manera, entonces necesita eliminar sourceSets {main {jniLibs.srcDirs = ['libs']}} en el buildGradle de la aplicación. Por supuesto, necesita las dependencias {compilar fileTree (incluir: ['* .jar'], dir: 'libs')} aquí.
Cuatro: Si otra persona ignora el archivo jnilibs al enviar el código, el archivo .so que contiene no se enviará y no habrá ningún archivo .so después de la actualización, y se informará este error. Primero, verifique si su proyecto contiene un archivo .so

Inserte la descripción de la imagen aquí

Inserte la descripción de la imagen aquí

Supongo que te gusta

Origin blog.csdn.net/qq_30885821/article/details/109220653
Recomendado
Clasificación