Fedora 43开发Tauri APP时遇到的坑

1. 编译报错

1
/usr/lib/jvm/java-21-openjdk-amd64' does not provide the required capabilities: [JAVA_COMPILER]

使用sdkman安装java-17解决

1
2
3
curl -s "https://get.sdkman.io" | bash

source "$HOME/.sdkman/bin/sdkman-init.sh"

通过

1
sdk list java

查看Java版本,并安装

1
sdk install 17.0.12-oracle

2. Android apk安装失败

Tauri 项目编译 Android 安装包时若无代码签名将会失败/apk 无法安装,需要配置签名:

可使用如下一键脚本 cd 到 tauri 项目目录,确保 Android 项目已经初始化了 (pnpm/cargo tauri android init),then:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
mkdir .android_key
keytool -genkey -v -keystore .android_key/upload-keystore.jks -keyalg RSA -keysize 2048 -validity 10000 -alias upload -keypass tauripass -storepass tauripass -dname CN=tauriapp
echo 'password=tauripass
keyAlias=upload
storeFile=../../../../.android_key/upload-keystore.jks
' > src-tauri/gen/android/keystore.properties
sed -i '1s/^/import java.io.FileInputStream\n/' src-tauri/gen/android/app/build.gradle.kts
sed -i '/buildTypes {/i \
signingConfigs { \
create("release") { \
val keystorePropertiesFile = rootProject.file("keystore.properties") \
val keystoreProperties = Properties() \
if (keystorePropertiesFile.exists()) { \
keystoreProperties.load(FileInputStream(keystorePropertiesFile)) \
} \
keyAlias = keystoreProperties["keyAlias"] as String \
keyPassword = keystoreProperties["password"] as String \
storeFile = file(keystoreProperties["storeFile"] as String) \
storePassword = keystoreProperties["password"] as String \
} \
}' src-tauri/gen/android/app/build.gradle.kts
sed -i '/isMinifyEnabled = true/a \
signingConfig = signingConfigs.getByName("release")' src-tauri/gen/android/app/build.gradle.kts

记得替换密码 (tauripass)

使用--split-per-abi参数为每个目标平台生成单独的软件包,比统一安装包小许多

1
npm run tauri android build -- --apk --split-per-abi --target aarch64

3. openssl编译错误

1
2
warning: openssl-sys@0.9.112: Could not find directory of OpenSSL installation, and this `-sys` crate cannot proceed without this knowledge. If OpenSSL is installed and this crate had trouble finding it,  you can set the `OPENSSL_DIR` environment variable for the compilation process. See stderr section below for further information.
error: failed to run custom build command for `openssl-sys v0.9.112`

设置OPENSSL_DIR也无用,在Cargo.tml中设置

1
2
[dependencies]
openssl = { version = "0.10.71", features = ["vendored"] }

Fedora 43开发Tauri APP时遇到的坑
https://mztchaoqun.com.cn/posts/D113_Tauri/
作者
mztchaoqun
发布于
2026年3月19日
许可协议