tauri 添加了turbojpeg庫后,打包安卓編譯問題

1、因為打包turbojpeg庫需要cmake編譯,所以需要安裝:cmake, perl,同時需要安裝ndk
安裝:

1、安裝這些依賴首先安裝scoop ,windows的 npm,相當(dāng) 方便,
第一步:打開powershell,
第二步:輸入這個命令: iex "& {$(irm get.scoop.sh)} -RunAsAdmin"
第三步:等待安裝后,scoop --version,如果正常顯示版本號,則表示安裝成功

以上安裝要注意:如果使用官方命令:? irm get.scoop.sh|iex?
會提示不能使用Administrator運行的powershell , 原始報錯如下:
Running the installer as administrator is disabled by default, see https://github.com/ScoopInstaller/Install#for-admin for details.
所以要使用上面的命令方式

2、安裝cmake, 同樣是在powershell中運行,不要在cmd中去運行

命令: scoop install cmake?
安裝成功后:cmake --version,正常顯示版本號即為成功, 添加環(huán)境變量:C:\Program Files\CMake\bin,正常安裝就會 自己添加

3、安裝 NDK, 這個在android studio 中去安裝
打開Android studio? File-> settings -> android sdk -> sdk tools 里面選擇ndk (Side by side)
如下圖:


安裝NDK

安裝完成后,一定要在系統(tǒng)環(huán)境變量中添加環(huán)境變量,如下
C:\Users\Administrator\AppData\Local\Android\Sdk\ndk\29.0.13599879\toolchains\llvm\prebuilt\windows-x86_64\bin
C:\Users\Administrator\AppData\Local\Android\Sdk\ndk\29.0.13599879
上面兩個都要添加,最終以自己的NDK的路徑添加,一般默認(rèn)安裝的路徑就是上面的,只是版本號不一樣
在powershell中設(shè)置變量名:

$env:ANDROID_NDK_HOME =C:\Users\Administrator\AppData\Local\Android\Sdk\ndk\29.0.13599879

這個在下面的命令中會用到,如果不設(shè)也可以,就需要每個用到的地方都輸入后面這一長串路徑

4、安裝llvm,也就是clang
命令: scoop install llvm
如果安裝不了,就直接下載一個安裝包,鏈接地址:
地址1? 地址2

地址2是官方地址,如果下載不了,就用地址1,地址版本舊一點,是17版的,官方是最新的,但是都可以用

安裝好后,添加環(huán)境變量
C:\Program Files\LLVM\bin

5、安裝ninja

scoop install ninja
ninja --version 正常顯示即可

6、安裝 pearl

pwershell輸入命令

$env:TURBOJPEG_SYS_STATIC ="1"

scoop install make perl

7、配置環(huán)境?

第一步:在你的項目的src-tauri目錄下面,執(zhí)行
rustup target add aarch64-linux-android armv7-linux-androideabi i686-linux-android x86_64-linux-android

添加這些構(gòu)建項,正常是已經(jīng)有了的
第二步:創(chuàng)建cargo配置

在pwoershell中輸入如下命令,注意最后面的"@是結(jié)尾 符,不要丟了
New-Item-Path$env:USERPROFILE\.cargo\config.toml-Force-Value @"

[target.aarch64-linux-android]

linker = "$env:ANDROID_NDK_HOME/toolchains/llvm/prebuilt/windows-x86_64/bin/aarch64-linux-android24-clang.cmd"

[target.armv7-linux-androideabi]

linker = "$env:ANDROID_NDK_HOME/toolchains/llvm/prebuilt/windows-x86_64/bin/armv7a-linux-androideabi24-clang.cmd"

[target.i686-linux-android]

linker = "$env:ANDROID_NDK_HOME/toolchains/llvm/prebuilt/windows-x86_64/bin/i686-linux-android24-clang.cmd"

[target.x86_64-linux-android]

linker = "$env:ANDROID_NDK_HOME/toolchains/llvm/prebuilt/windows-x86_64/bin/x86_64-linux-android24-clang.cmd"

[env]

ANDROID_NDK = "C:\\Users\\Administrator\\AppData\\Local\\Android\\Sdk\\ndk\\29.0.13599879"

CMAKE_TOOLCHAIN_FILE = "C:\\Users\\Administrator\\AppData\\Local\\Android\\Sdk\\ndk\\29.0.13599879\\build\\cmake\\android.toolchain.cmake"

"@

上面的所有 / 杠 替換成 \\,如果已經(jīng)執(zhí)行了上面的命令,可以去:c:/Users/Administartor/.cargo/config.toml進行重新 編輯,

設(shè)置編譯環(huán)境變量

啟用靜態(tài)鏈接

$env:TURBOJPEG_SYS_STATIC ="1"#?

指定 CMake 生成器為 Ninja

$env:CMAKE_GENERATOR ="Ninja"

# 指定 Android 平臺

$env:ANDROID_PLATFORM ="android-24"

$env:ANDROID_ABI ="arm64-v8a"

# 驗證 NDK 配置

cmake -DANDROID_ABI=$env:ANDROID_ABI -DANDROID_PLATFORM=$env:ANDROID_PLATFORM -DCMAKE_TOOLCHAIN_FILE=$env:CMAKE_TOOLCHAIN_FILE --version

按上述配置后應(yīng)該是沒有問題了

上述配置完成后,可能會遇到 打包Windows應(yīng)用出現(xiàn)問題,如果出現(xiàn)同樣上述Android問題,可以如下配置:

1、打開 visual studio installer,然后點擊修改->component

搜索:MSBuild ,C++ CMake,Windows 10 SDK 或者 Windows 11 SDK, 分別勾選,然后安裝這幾個庫

2、設(shè)置環(huán)境變量

powershell 下執(zhí)行

# 設(shè)置正確的生成器

$env:CMAKE_GENERATOR ="Visual Studio 17 2022"

# 添加 MSBuild 到 PATH

$env:PATH ="C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\MSBuild\Current\Bin\amd64;"+$env:PATH

# 設(shè)置 MSBuild 路徑

$env:MSBUILD_PATH ="C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\MSBuild\Current\Bin\amd64"

# 添加到系統(tǒng) PATH

$env:PATH ="$env:MSBUILD_PATH;$env:PATH"

# 設(shè)置 VCTargetsPath (解決具體錯誤)

$env:VCTargetsPath ="C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\MSBuild\Microsoft\VC\v170"

3、啟用長路徑支持(系統(tǒng)級修復(fù))

powershell 里執(zhí)行

Set-ItemProperty-Path"HKLM:\SYSTEM\CurrentControlSet\Control\FileSystem"-Name"LongPathsEnabled"-Value 1

清理并重建項目

# 清理緩存

cargo clean

# 重建項目

cargo build

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容