Windows x64平台JNA调用leveldb.dll触发UnsatisfiedLinkError求助
LevelDB Kotlin Multiplatform包装器Windows x64平台UnsatisfiedLinkError问题
我正在为google/leveldb编写Kotlin Multiplatform包装器,相关仓库包括leveldb-builds(提供多平台编译二进制文件)、kotlin-leveldb(基于JNA的仓库)。Kotlin/JVM和Android部分采用JNA实现,通过Gradle KMP插件共享JVM代码,测试用例通用。Linux x64、macOS x64/arm64、Android x64的测试均通过,但Windows x64平台出现如下错误:
UnsatisfiedLinkError: The specified procedure could not be found INFORMAZIONI: Found library resource at jar:file:/C:/Users/lamba/IdeaProjects/kotlin-leveldb/build/libs/kotlin-leveldb-jvm-1.0-SNAPSHOT.jar!/win32-x86-64/leveldb.dll nov 13, 2024 11:43:04 PM com.sun.jna.Native extractFromResourcePath INFORMAZIONI: Extracting library to C:\Users\lamba\AppData\Local\Temp\jna-102737879\jna900937333738511061.dll Exception in thread "main" java.lang.UnsatisfiedLinkError: Impossibile trovare la procedura specificata.
已尝试的排查步骤:
- 使用
nm -g .\leveldb.dll | findstr "leveldb_"确认所有符号存在,命名无损坏; - 已将C++标准库静态链接到dll中;
- 手动调用
NativeLibrary.getInstance加载库,仍出现相同错误。
其他平台均正常,求类似问题的解决经验?
内容的提问来源于stack exchange,提问作者Lamberto Basti
相关产品推荐
相关产品推荐

