Android Spatialite中jsqlite.Database.internal_init中的java.lang.UnsatisfiedLinkError
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Android Spatialite中jsqlite.Database.internal_init中的java.lang.UnsatisfiedLinkError,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1407字,纯文字阅读大概需要3分钟。
内容图文
我刚开始使用Android并使用Spatialite而无法弄清楚为什么我的应用程序因为这个错误而在一些设备上崩溃:
java.lang.UnsatisfiedLinkError:找不到void jsqlite.Database.internal_init()的实现(尝试过Java_jsqlite_Database_internal_1init和Java_jsqlite_Database_internal_1init__)
at jsqlite.Database.internal_init(Native Method)
在jsqlite.Database.(Database.java:25)
此崩溃报告来自带有Android 6.0的Nexus 5(hammerhead),但已在Xoom上报告了Android 4.1和其他一些未知设备.我认为它可能与这些问题中提到的NDK版本有关:
Adding “.so” library to my android studio project
Android NDK java.lang.UnsatisfiedLinkError: findLibrary returned null
https://bitbucket.org/almworks/sqlite4java/issues/71/arm64-bit.(虽然这是针对sqlite4java)
除此之外我还得到这个错误/警告(取决于设备):libjsqlite.so有文本重定位.这会浪费内存并防止安全性增强.请修理.虽然它没有像其他错误一样崩溃应用程序.
解决方法:
我通过设置应用程序built.gradle(或在AndroidManifest.xml中)解决了这个问题:
targetSdkVersion 21
它的工作原理!
我知道这不是一个好的解决方案,它是一个补丁,但我工作!
*** UPDATE
如果无法将目标版本更改为21,则可以执行以下操作:
>从以下网址下载源代码:https://github.com/geopaparazzi/geopaparazzi
>将项目中的所有引用清除为spatialite,.war文件和jndi库
>复制模块geopaparazzispatialitelibrary并集成到您的项目中
>清除模块中不需要的代码
>编译,享受您的项目目标版本23
这是一个复杂的过程,但它的工作原理.
特别感谢andrea antonello,他帮助我解决了这个问题,并且做了很好的工作.
内容总结
以上是互联网集市为您收集整理的Android Spatialite中jsqlite.Database.internal_init中的java.lang.UnsatisfiedLinkError全部内容,希望文章能够帮你解决Android Spatialite中jsqlite.Database.internal_init中的java.lang.UnsatisfiedLinkError所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。