百度定位sdk Couldn't load locSDK3 from loader dalvik

在反复测试的过程中,程序有时候总会有奇葩问题,昨天晚上刚越到个百度定位的问题,查了好久的log, 发现是 “Couldn't Couldn't load locSDK3 from loader dalvik
重点Log:
ActivityManager(  528): Activity idle: Token{426f00d0 ActivityRecord{42553f80 u0 
04-30 20:58:39.704 V/ActivityManager(  528): Stopping ActivityRecord{42607ab8 u0 com.oppo.launcher/.Launcher}: nowVisible=false waitingVisible=true finishing=false
04-30 20:58:39.704 V/ActivityManager(  528): Stopping ActivityRecord{424d56a0 u0 com.android.settings/.Settings$InputMethodAndLanguageSettingsActivity}: nowVisible=false waitingVisible=true finishing=false
04-30 20:58:39.704 V/ActivityManager(  528): Stopping ActivityRecord{42582a28 u0 com.android.browser/.BrowserActivity}: nowVisible=false waitingVisible=true finishing=false
04-30 20:58:39.706 W/System.err( 1451): java.lang.UnsatisfiedLinkError: Couldn't load locSDK3 from loader dalvik.system.PathClassLoader[DexPathList[dexElements=[zip file "/data/app/xxx-1.apk"],nativeLibraryDirectories=[/data/app-lib/xxx-1, /vendor/lib, /system/lib]]]: findLibrary returned null
04-30 20:58:39.707 W/System.err( 1451):  at java.lang.Runtime.loadLibrary(Runtime.java:359)
04-30 20:58:39.707 W/System.err( 1451):  at java.lang.System.loadLibrary(System.java:514)
04-30 20:58:39.707 W/System.err( 1451):  at com.baidu.location.Jni.<clinit>(Unknown Source)
04-30 20:58:39.707 W/System.err( 1451):  at com.baidu.location.ae.a(Unknown Source)
04-30 20:58:39.707 W/System.err( 1451):  at com.baidu.location.ae.a(Unknown Source)
04-30 20:58:39.707 W/System.err( 1451):  at com.baidu.location.f.a(Unknown Source)
04-30 20:58:39.707 W/System.err( 1451):  at com.baidu.location.ad.handleMessage(Unknown Source)
04-30 20:58:39.707 W/System.err( 1451):  at android.os.Handler.dispatchMessage(Handler.java:99)
04-30 20:58:39.707 W/System.err( 1451):  at android.os.Looper.loop(Looper.java:153)
04-30 20:58:39.708 W/System.err( 1451):  at android.app.ActivityThread.main(ActivityThread.java:5320)
04-30 20:58:39.708 W/System.err( 1451):  at java.lang.reflect.Method.invokeNative(Native Method)
04-30 20:58:39.708 W/System.err( 1451):  at java.lang.reflect.Method.invoke(Method.java:511)....

在使用百度定位SDK的时候,明明已经加入了liblocSDK3.so,Manifest中也添加了相应权限,注册了com.baidu.location.f服务。但总是无法定位。提示错误java.lang.UnsatisfiedLinkError: Couldn’t load locSDK3: findLibrary returned null.

2cf5e0fe9925bc312b9b17435edf8db1ca137022

根据错误提示是无法找到locSDK3这个库,但是又明明在armeabi中加入了liblocSDK3.so。被这个问题困扰了很久。在做NDK开发的时候,NDK编译的so有时会在armeabi和armeabi-v7a中分别放置一份。突然想到上面的错误是不是也是因为这个原因。

然后在项目的libs目录下新建一个文件夹,命名为armeabi-v7a,然后将liblocSDK3.so复制一份到该文件夹。

libBMapApiEngine

再次运行项目,发现错误已经解决。


©️2020 CSDN 皮肤主题: 精致技术 设计师:CSDN官方博客 返回首页