I tried to bundle my app using construo. I set it up using:
tasks.withType<Jar> {
manifest {
attributes["Main-Class"] = "com.ubidrop.desktop.MainKt"
}
}
construo {
// name of the executable
name.set("ubidrop")
// human readable name, used for example in the `.app` name for MacOS
humanName.set("Ubidrop")
version.set(appVersionName)
// where to put the packaged zips
outputDir.set(rootProject.file("dist"))
// outputs configuration
targets {
// MacOS ARM processors
create<Target.MacOs>("macM1") {
architecture.set(Target.Architecture.AARCH64)
// MacOS needs an identifier
identifier.set("com.ubidrop.macos")
jdkUrl.set("https://github.com/adoptium/temurin17-binaries/releases/download/jdk-17.0.8%2B7/OpenJDK17U-jdk_aarch64_mac_hotspot_17.0.8_7.tar.gz")
}
create<Target.MacOs>("macIntel") {
architecture.set(Target.Architecture.X86_64)
// MacOS needs an identifier
identifier.set("com.ubidrop.macos")
jdkUrl.set("https://github.com/adoptium/temurin17-binaries/releases/download/jdk-17.0.8%2B7/OpenJDK17U-jdk_x64_mac_hotspot_17.0.8_7.tar.gz")
}
}
}
however, I cannot get the bundled app to run on my machine. Running it via terminal on my M1 using:
open /path/to/app/AppName.app/Contents/MacOS/app
gives me the following errors:
M1 Version
alexstyl@Alexs-MacBook-Pro-2 ~ % /Users/alexstyl/projects/ubidrop-desktop/dist/ubidrop-1.30.1-macM1/Ubidrop.app/Contents/MacOS/ubidrop ; exit;
thread 'main' panicked at src/main.rs:90:6:
Failed to call main method: JavaException
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
Exception in thread "Thread-0" java.lang.NoClassDefFoundError: androidx/compose/ui/text/font/Font
at com.ubidrop.desktop.MainKt.<clinit>(Main.kt:90)
Caused by: java.lang.ClassNotFoundException: androidx.compose.ui.text.font.Font
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(Unknown Source)
at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(Unknown Source)
at java.base/java.lang.ClassLoader.loadClass(Unknown Source)
... 1 more
Inte Version
alexstyl@Alexs-MacBook-Pro-2 ~ % /Users/alexstyl/projects/ubidrop-desktop/dist/ubidrop-1.30.1-macIntel/Ubidrop.app/Contents/MacOS/ubidrop ; exit;
thread 'main' panicked at src/main.rs:62:10:
Failed to create a new JavaVM: LoadError("/Users/alexstyl/projects/ubidrop-desktop/dist/ubidrop-1.30.1-macIntel/Ubidrop.app/Contents/MacOS/jdk/lib/server/libjvm.dylib", DlOpen { desc: "dlopen(/Users/alexstyl/projects/ubidrop-desktop/dist/ubidrop-1.30.1-macIntel/Ubidrop.app/Contents/MacOS/jdk/lib/server/libjvm.dylib, 0x0005): tried: \'/Users/alexstyl/projects/ubidrop-desktop/dist/ubidrop-1.30.1-macIntel/Ubidrop.app/Contents/MacOS/jdk/lib/server/libjvm.dylib\' (mach-o file, but is an incompatible architecture (have \'arm64\', need \'x86_64\')), \'/System/Volumes/Preboot/Cryptexes/OS/Users/alexstyl/projects/ubidrop-desktop/dist/ubidrop-1.30.1-macIntel/Ubidrop.app/Contents/MacOS/jdk/lib/server/libjvm.dylib\' (no such file), \'/Users/alexstyl/projects/ubidrop-desktop/dist/ubidrop-1.30.1-macIntel/Ubidrop.app/Contents/MacOS/jdk/lib/server/libjvm.dylib\' (mach-o file, but is an incompatible architecture (have \'arm64\', need \'x86_64\'))" })
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
I tried to bundle my app using construo. I set it up using:
however, I cannot get the bundled app to run on my machine. Running it via terminal on my M1 using:
gives me the following errors:
M1 Version
Inte Version