Anroid 开发so文件找不到问题-例高德地图SDK提示com.autonavi.amap.mapcore.MapCore.nativeNewInstance问题
使用高德地圖碰到此問題,糾結(jié)許久 記錄在此,希望遇到相同問題的讀者可以有所借鑒。
錯(cuò)誤截圖:
高德sdk demo 是沒有問題的,但集成到項(xiàng)目中就會有問題,根據(jù)網(wǎng)上解析是找不到so庫,但庫明明在的呀,高德未提供其它版本的庫,全在這里了,見圖:
導(dǎo)致問題的原因主要有兩種:
1、so文件操作不當(dāng)問題。可能是so文件與jar不匹配,也可能是so文件未導(dǎo)入。
解決辦法:
下載與jar相匹配的jar。sdk下載網(wǎng)址:http://lbs.amap.com/api/android-sdk/down/
2、由于在X86手機(jī)上運(yùn)行,而此時(shí)高德地圖官網(wǎng)并未發(fā)布X86的so文件,導(dǎo)致應(yīng)用崩潰。
(注:android4.4之后的大部分機(jī)型都是X86的)
解決辦法:
只保留armeabi文件夾,其他的統(tǒng)統(tǒng)刪掉,因?yàn)榇蠖鄶?shù)x86平臺的手機(jī)都會兼容armeabi的版本。但是會發(fā)現(xiàn)就算這樣做了在模擬器上面依舊裝不上,那是因?yàn)槟M器沒有兼容,但是他可以替換平臺。如果是genymotion的話,需要安裝一個(gè)轉(zhuǎn)換為arm的插件。
以上方法都不好用:
項(xiàng)目中用到了融云的SDK,我發(fā)現(xiàn)它libs文件夾下是全的,見圖:
看到這里我突然明白了,原因就在這里,融云的庫做為項(xiàng)目的依賴module 來的,最終于生成的 編譯文件會有上面四個(gè)平臺的文件夾,如果高德地圖sdk,
找v7a的庫真的是找不到,如果沒有armeabi-v7a的話,哪么他會去找armeabi;但現(xiàn)在有,所以找不到也正常了;
解決方案,把下面這個(gè)圖,保留和高德一樣的文件夾,其它刪除;或者在給高德加幾個(gè)文件夾,把a(bǔ)rmeabi相應(yīng)的文件拷貝過去。都可以解決問題;
總結(jié)
以上是生活随笔為你收集整理的Anroid 开发so文件找不到问题-例高德地图SDK提示com.autonavi.amap.mapcore.MapCore.nativeNewInstance问题的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: mongo:(3)windows上mon
- 下一篇: Java高级补充(Socket服务端、客