android studio 26.03,3.26AndroidStudio中使用Spatialite for Android

問題說明:Spatialite for Android是基於Eclipse的Android項目構建的,所以並給基於gradle,不能直接加載到Android Studio中使用,需要做必要的設置才可以!

思路:

第一步:將Spatialite for Android加載到Eclipse中,測試成功,表明項目確實可用,api需要選擇支持google api的開發包!

第二步:在AndroidStudio中通過Improt project的方式將Spatialite for Android加載到AndroidStudio,這一過程會生成gradle構建文件,生成AndroidStudio的application項目結構!

第三步:因為項目中存在項目依賴(spatialite-android依賴於spatialite-android-library),所以,需要將被依賴的項目類型改為library,可以參考AndroidStudio中一般library項目,重新設置build.gradle和Mainfest.xml

第四步:原項目依賴了google api中的maps.jar等幾個開發包,所以在類似Android_SDK_windows\add-ons\addon-google_apis_x86-google-19\libs的路徑下找到對應的jar包,放到spatialite-android的libs中,沒有libs時新建該文件夾,然后在build.gradle的dependences中添加compile fileTree(dir:'libs',include:['*.jar'])即可

第五步:spatialite-android-library中存在Exception is never thrown in try statement的問題,是說在try語句塊中永遠不會拋出該異常,直接import java.lang.Exception將sqlite.Exception替換即可!

第六步:如果SDK的版本設置存在問題,可以直接參考已經測試成功的項目,依賴項目的最低版本不應高於應用項目的最小版本

第七步:刪除spatialite-android-library中的jni文件夾,其中的c++源碼文件已經編譯為so文件了,所以直接刪除,否則會編譯錯誤!

最后要注意的是so文件引入AndroidStudio的問題,通過import project后,發現在main中自動生成了一個jniLibs文件夾存放了so文件,這就是Android Studio引入so文件的方式,會自動加載 jniLibs中的so文件!

要想利用Spatialite for Android構建自己的項目,關鍵在於設置好apatialite-android-library這個依賴項目,然后在自己的application項目中依賴它就好了!

這樣一來,問題就簡單多了,需要在android項目中使用spatialite時,只需要在AndroidStudio中新建一個Android Library Module,刪除自動生成的源碼包,然后將spatialite-android-library中的源碼包jsqlite拷貝到main-->java中,將AndroidManifest.xml中的package改為jsqlite,然后再在main下新建文件夾jniLibs,將so文件拷貝進去,然后再修改一下之前說過的Exception的問題,API版本的問題就OK了!

需要使用的時候,直接在項目dependencies中添加依賴:compile project(':your library')即可。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值