<!-- If you are looking for support, please check out our documentation: - https://docs.objectbox.io - https://docs.objectbox.io/faq - https://docs.objectbox.io/troubleshooting --> ### Is there an existing issue? - [x] I have searched [existing issues](https://github.com/objectbox/objectbox-java/issues) ### Build info - ObjectBox version: 5.0.0 - OS: Windows 10 - Device/ABI/architecture: x64 ### Steps to reproduce I am building a KMP project with ObjectBox. When I run the jvmApp module directly (e.g., from the IDE), the ObjectBox .dll file is found and loaded correctly. However, when I build a distributable package for deployment (e.g., using jpackage), the .dll file seems to be missing from the final package, causing it to fail at runtime. What could be the problem? (I apologize for asking this again. I posted this on StackOverflow, but since I haven't received a response yet, I'm posting it here as well.) ### Expected behavior Create objectbox-jni-windows-x64, when the installer installs the executable. ### Actual behavior The .dll file is not included when the installer installs the executable. ### Code <!-- Please provide a minimal code example. Things you maybe should also include: - the entity class - the Gradle build script You can also create a public GitHub repository and link to it below. Please do not upload screenshots of text, use code blocks like below instead. Add any other context about the problem: - Is there anything special about your app? - May transactions or multi-threading play a role? - Did you find any workarounds to prevent the issue? --> <details><summary>Code</summary> settings.gradle.kts(root) ``` pluginManagement { repositories { google { content { includeGroupByRegex("com\\.android.*") includeGroupByRegex("com\\.google.*") includeGroupByRegex("androidx.*") } } mavenCentral() gradlePluginPortal() } resolutionStrategy { eachPlugin { if (requested.id.id == "io.objectbox") { useModule("io.objectbox:objectbox-gradle-plugin:${requested.version}") } if (requested.id.id == "com.google.dagger") { useModule("com.google.dagger:dagger:${requested.version}") } if (requested.id.id == "com.google.dagger:hilt-android") { useModule("com.google.dagger:hilt-android:${requested.version}") } } } } dependencyResolutionManagement { repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS) repositories { google() mavenCentral() } } rootProject.name = "FireAlarmKMP" include(":androidApp") include(":jvmApp") include(":shared:data-common") include(":shared:data-jvm") include(":shared:domain") include(":shared:presentation-common") include(":shared:data-android") include(":shared:core-common") include(":shared:core-android") include(":shared:core-jvm") include(":shared:presentation-android") include(":shared:presentation-jvm") ``` build.gradle.kts(:jvmApp) ``` import org.jetbrains.compose.desktop.application.dsl.TargetFormat plugins { alias(libs.plugins.jetbrains.kotlin.jvm) alias(libs.plugins.kotlin.compose) alias(libs.plugins.composeMultiplatform) alias(libs.plugins.kapt) } java { sourceCompatibility = JavaVersion.VERSION_11 targetCompatibility = JavaVersion.VERSION_11 } kotlin { compilerOptions { jvmTarget = org.jetbrains.kotlin.gradle.dsl.JvmTarget.JVM_11 } } dependencies { implementation(compose.desktop.currentOs) implementation(libs.kotlinx.coroutines.swing) implementation(libs.dagger) implementation(libs.androidx.lifecycle.viewmodel.compose) implementation(libs.androidx.lifecycle.runtime.compose) configurations["kapt"].dependencies.add(project.dependencies.create(libs.dagger.compiler.get())) implementation(project(":shared:presentation-common")) implementation(project(":shared:presentation-jvm")) implementation(project(":shared:domain")) implementation(project(":shared:data-common")) implementation(project(":shared:data-jvm")) implementation(project(":shared:core-common")) implementation(project(":shared:core-jvm")) } compose.desktop { application { mainClass = "com.blabla.jvmapp.MainKt" nativeDistributions { targetFormats(TargetFormat.Dmg, TargetFormat.Msi, TargetFormat.Deb, TargetFormat.Exe) packageName = "jvmapp" packageVersion = "1.0.28" } } } ``` build.gradle.kts(:data-jvm) ``` plugins { alias(libs.plugins.jetbrains.kotlin.jvm) alias(libs.plugins.kapt) } java { sourceCompatibility = JavaVersion.VERSION_11 targetCompatibility = JavaVersion.VERSION_11 } kotlin { compilerOptions { jvmTarget = org.jetbrains.kotlin.gradle.dsl.JvmTarget.JVM_11 } } dependencies { implementation(libs.arrow.core) implementation(libs.arrow.fx.coroutines) implementation(libs.kotlinx.coroutines.core) implementation(libs.objectbox.windows) implementation(libs.objectbox.kotlin) kapt(libs.objectbox.processor) implementation(libs.dagger) kapt(libs.dagger.compiler) implementation(project(":shared:data-common")) implementation(project(":shared:core-common")) implementation(project(":shared:domain")) } apply(plugin = "java-library") apply(plugin = "io.objectbox") ``` </details> ### Logs, stack traces <details><summary>Logs</summary> ``` Caused by: java.lang.UnsatisfiedLinkError: no objectbox-jni-windows-x64 in java.library.path: C:\Program Files\com.blabla.jvmapp\app/resources at java.base/java.lang.ClassLoader.loadLibrary(Unknown Source) at java.base/java.lang.Runtime.loadLibrary0(Unknown Source) at java.base/java.lang.System.loadLibrary(Unknown Source) at io.objectbox.internal.NativeLibraryLoader.<clinit>(NativeLibraryLoader.java:98) ... 48 more ``` </details>