java.lang.UnsatisfiedLinkError in jsqlite.Database.internal_init in Android Spatialite

 2023-01-20    327  

问题描述

我是针对Android开发和使用空间的新手

java.lang.unsatisfiedlinkerror:未针对void jsqlite.database.internal_init()找到任何实现(尝试JAVA_JSQLITE_DABASE_INTERN_INTERN_INIT_1INIT和JAVA_JSQLITE_JSQLITE_DATABASE_DABASE_INTERN_INTERNE_INTERNE_1INIT__)
在jsqlite.database.internal_init(本机方法)
在jsqlite.database.(database.java:25)

java.lang.UnsatisfiedLinkError in jsqlite.Database.internal_init in Android Spatialite

此崩溃报告来自Android 6.0的Nexus 5(Hammerhead),但已在Xoom上使用Android 4.1和其他一些未知设备进行了报道.我认为这可能与这些问题中提到的NDK版本有关:

添加” .so”库” a>

位. (尽管这是针对sqlite4java)

除此之外,我还会收到此错误/警告(取决于设备):libjsqlite.这正在浪费内存并防止安全性硬化.请解决.尽管它不会像其他错误那样崩溃.

推荐答案

我通过在应用程序built.gradle(或androidManifest.xml)中设置来解决它:

targetSdkVersion 21

它有效!
我知道这不是一个好的解决方案,而是一个补丁,但我工作!

***更新

如果您不能将目标版本更改为21,则可以执行以下操作:

  • 从: https://github.com/geopaparazzi/geopaparazzi/geopaparazzi

>

  • 清洁项目中的所有参考文献,war file和jndi库
  • 复制模块geopaparazzispatialitelibrary并集成在您的项目中
  • 清洁模块中不需要的代码
  • 编译,并享受您的项目目标版本23
  • 这有点复杂,但起作用.

    特别要感谢Andrea Antonello,他帮助我解决了问题,并在空间中做得很好.

    其他推荐答案

    如果这可以帮助任何有相同问题的人,我通过更新JNI库解决了这一点.为此,我下载了此文件:

    来自Geopaparazzi GitHub repo,该回购包含最新版本的JNI库.

    用存档文件中的库中替换epatialiteandroid库中的.SO文件.

    您可以在此处找到图书馆的所有版本: https://https://github.com/geopaparazzi/libjsqlite-spatialite-android/tree/master/archive :

    以上所述是小编给大家介绍的java.lang.UnsatisfiedLinkError in jsqlite.Database.internal_init in Android Spatialite,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对77isp云服务器技术网的支持!

    原文链接:https://77isp.com/post/26070.html

    =========================================

    https://77isp.com/ 为 “云服务器技术网” 唯一官方服务平台,请勿相信其他任何渠道。