无法加载本机库:sqlite-3.36.0(尝试使用 Room 持久化库)

问题描述 投票:0回答:2
Failed to load native library:sqlite-3.36.0-208a62b9-087f-4c8f-b123-bcea6f227593-libsqlitejdbc.so. osinfo: Linux/x86_64
java.lang.UnsatisfiedLinkError: /tmp/sqlite-3.36.0-208a62b9-087f-4c8f-b123-bcea6f227593-libsqlitejdbc.so: /tmp/sqlite-3.36.0-208a62b9-087f-4c8f-b123-bcea6f227593-libsqlitejdbc.so: failed to map segment from shared object

Android级插件版本:7.0.4
摇篮版本:7.3.3
Gradle JDK:11.0.10(Android Studio 默认 JDK)

compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
}
dependencies {
    def room_version = "2.4.1"
...
    implementation "androidx.room:room-runtime:$room_version"
    annotationProcessor "androidx.room:room-compiler:$room_version"
}

我一直在努力寻找任何有关如何解决该问题的具体信息。 Android Room + Kotlin + Kapt + IntelliJ + MacOS Catalina:java.lang.UnsatisfiedLinkError:org.sqlite.core.NativeDB._open_utf8

https://youtrack.jetbrains.com/issue/IDEA-246228

Android Studio 北极狐 | 2020.3.1 补丁 2
构建#AI-203.7717.56.2031.7678000,构建于2021年8月26日
运行时版本:11.0.10+0-b96-7249189 amd64
VM:JetBrains s.r.o. 的 OpenJDK 64 位服务器 VM
Linux 5.15.11-gentoo
GC:G1年轻代,G1老一代
内存:2048M
核心数:4

任何有关如何解决此问题的想法表示赞赏。

android sqlite android-room
2个回答
0
投票

此问题是由于 /tmp 上设置了 noexec 造成的。 如果您拥有必要的权限,则可以取消该限制。 或者,您可以在 Android studio 的 VM 选项中设置 java.io.tmpdir。

请参阅 Android kapt java.lang.UnsatisfiedLinkError Room 了解更多详细信息。


0
投票

在 Windows 机器中,要解决此问题,请在管理员模式下运行 Android Studio

© www.soinside.com 2019 - 2024. All rights reserved.