在项目开发中需要用到高德地图,之后就遇到了一个很奇葩的问题,当我使用他们2d.jar包加载地图的时候是可以的,但是后来需要其他功能加入必须使用3d.jar时候就一直报下面的错误信息
art: No implementation found for long com.autonavi.amap.mapcore.MapCore.nativeNewInstance(java.lang.String, java.lang.String) (tried Java_com_autonavi_amap_mapcore_MapCore_nativeNewInstance and Java_com_autonavi_amap_mapcore_MapCore_nativeNewInstance__Ljava_lang_String_2Ljava_lang_String_2)
这个错误的发生马上就反应是不是so文件没有加入图,然后马上去官网下载,复制,粘贴,clean,build,之后当项目再运行的时候还是会报错,这下只能写工单请求高德的帮助。当然我还是不死心,google这类问题,基本都是so没有加载好,经过各种尝试后还是不行,我就开始研究他们官方的deom,发现在app下面的build.gradle文件中写入了
sourceSets { main { jniLibs.srcDirs = ['libs'] } }
恍然大悟在jnilib目录下的so会被gradle自动打包到apk中,而在libs下的so需要在build.gradle中配置才会打包到apk中
后来地图就可以显示了…