在linux環境下使用 buildozer打包成 android apk檔案的完整步驟

更新於 發佈於 閱讀時間約 9 分鐘

【建置環境說明】

我的開發環境是win11,python是3.10.7版本,編碼的工具是Visual Studio Code(簡稱vscode)。

【本篇說明】

需先完成程式開發(可參考網址:APP開發),在範例專案資料夾裡有main.py、countinmind.kv、CountInMindIco.ico以及font資料夾(裡面有TW-Kai-98_1.ttf文字檔案)。先前幾篇已完成虛擬機安裝、linux環境及功能設定(可參考:02-Linux系統環境設定及操作過程),虛擬機也能正常開機,接下來就是使用buildozer來做打包。

以下分享打包過程詳細步驟及遭遇問題的解決方式:

1.開啟虛擬機終端機,安裝pip,輸入以下: sudo apt install python3-pip


2.安裝buildozer,輸入以下: pip install --user --upgrade buildozer


3.更新apt,輸入:sudo apt update


4.安裝相關套件,輸入: sudo apt install -y git zip unzip openjdk-17-jdk python3-pip autoconf libtool pkg-config zlib1g-dev libncurses5-dev libncursesw5-dev libtinfo5 cmake libffi-dev libssl-dev automake


5.輸入: pip3 install --user --upgrade Cython==0.29.33 virtualenv (一開始我漏掉這段,所以才會有下面的指令除錯,建議可在這個步驟先輸入指令)


6.若出現:# add the following line at the end of your ~/.bashrc file

輸入: export PATH=$PATH:~/.local/bin/


7.將終端機導航至 main.py的資料夾,輸入:cd (目的資料夾),我的是: cd /home/my account name/share_folder,我先在linux系統下建立一個share_folder資料夾,將本機共用資料夾裡面的專案資料複製到share_folder資料夾。


8.再輸入以下: buildozer init,在main.py的資料夾會出現 buildozer.spec,這個檔案是待會的打包設置清單,開啟它並編輯修改(通常可針對app名稱、圖像修改而已)


9.開始執行打包測試,輸入: buildozer android debug deploy run (這是要連接安卓手機測試佈署deploy用指令)。如果沒有連接手機,可輸入: buildozer android debug(這個是為了要產生.apk檔案),或是輸入:buildozer android release(這個是為了產生.aab檔案)


10.出現錯誤: # Cython (cython) not found, please install it.

安裝 Cython:輸入:sudo apt-get update # 更新軟體包列表

輸入:sudo apt-get install cython3 # 安裝 Cython


11.出現錯誤:Package cython is not available, but is referred to by another package.This may mean that the package is missing, has been obsoleted, or is only available from another source

E: Package 'cython' has no installation candidate。

這是因為buildozer搜尋cython,但是實際的指令是cython3。要解決這個問題,您必須建立一個cython命令,將所有參數傳遞給cython3。

所以輸入以下:cd /bin/ && sudo gedit cython ,在彈出的編輯器中寫: cython3 $@ ,這將把所有參數從cython傳遞到cython3。儲存檔案並在終端機輸入: sudo chmod 755 cython


12.接著再輸入一次: sudo apt-get install cython,然後導航至步驟7的資料夾,輸入: buildozer android debug deploy run (我是輸入: buildozer android debug run)


13.出現報錯: (我猜前面漏了安裝python3 或 cython 虛擬環境)

[WARNING]: ERROR: /home/farloveway/share_folder/.buildozer/android/platform/build-arm64-v8a_armeabi-v7a/build/other_builds/hostpython3/desktop/hostpython3/native-build/python3 failed!

#Command failed: ['/usr/bin/python3', '-m', 'pythonforandroid.toolchain', 'create', '--dist_name=countinmind_android', '--bootstrap=sdl2', '--requirements=python3,kivy,requests,urllib3,chardet,idna,certifi', '--arch=arm64-v8a', '--arch=armeabi-v7a', '--copy-libs', '--color=always', '--storage-dir=/home/farloveway/share_folder/.buildozer/android/platform/build-arm64-v8a_armeabi-v7a', '--ndk-api=21', '--ignore-setup-py', '--debug']

#Buildozer failed to execute the last command

#The error might be hidden in the log above this error

#Please read the full log, and search for it before

#raising an issue with buildozer itself.

#In case of a bug report, please add a full log with log_level = 2


14.再輸入: pip3 install --user --upgrade Cython==0.29.33 virtualenv,後面接著輸入: buildozer android debug deploy run (我是輸入: buildozer android debug)


15.終端機出現: # Waiting for application to start. 或是出現已打包完成apk文字 (Android packaging done!),會在步驟7的資料夾看到打包好的.apk檔案,我的在bin資料夾裡面。


【最後補充】如果遇到需重新執行打包或者是打包失敗、或是要修改.spec文件(像是遇到很多問題無法解決,就可考慮試試看),先在終端機輸入: buildozer appclean (目的是先清除 .buildozer: ANT、SDK、NDK等),然後關機虛擬機再重開起,並將.spec設置清單修改好,再在終端機輸入:buildozer android debug (或release),正常在打包過程中,會詢問2~3次是否同意 Google 授權協議,請輸入"y"鍵,不能輸入空白鍵。


【本篇小結】

以上是在虛擬機linux系統下,所使用 buildozer打包很多次所整理出來的過程及問題,希望能幫助到各位順利完成打包!

【本篇結束】

在自學路上遇到困難是很正常的事,只要堅持到底,相信就會有所成果,期勉大家一同努力。

留言
avatar-img
留言分享你的想法!
avatar-img
艾肯比工程師
2會員
53內容數
主要分享應用程式開發過程、遭遇困難及解決技巧,提供給自學或獨立開發者做為參考,希望能對您們有所幫助。
艾肯比工程師的其他內容
2025/07/07
說明如何在Windows 11系統中解決VirtualBox虛擬機開啟失敗(錯誤碼: E_FAIL 0x80004005)的問題,該問題通常是由於Hyper-V與VirtualBox衝突造成。文章提供三種方法來啟用或禁用Hyper-V,並詳細說明每個步驟。
2025/07/07
說明如何在Windows 11系統中解決VirtualBox虛擬機開啟失敗(錯誤碼: E_FAIL 0x80004005)的問題,該問題通常是由於Hyper-V與VirtualBox衝突造成。文章提供三種方法來啟用或禁用Hyper-V,並詳細說明每個步驟。
2025/06/30
在使用VirtualBox開啟Ubuntu虛擬機時,遇到錯誤訊息「ERROR vmwgfx seems to be running on an unsupported hypervisor.」導致無法啟動虛擬機。本文提供兩種解決方法:更改虛擬機的圖形控制器設置和釋放虛擬機磁碟空間。
Thumbnail
2025/06/30
在使用VirtualBox開啟Ubuntu虛擬機時,遇到錯誤訊息「ERROR vmwgfx seems to be running on an unsupported hypervisor.」導致無法啟動虛擬機。本文提供兩種解決方法:更改虛擬機的圖形控制器設置和釋放虛擬機磁碟空間。
Thumbnail
2025/06/26
這篇文章說明如何在Win11系統下,使用VirtualBox虛擬機器(Ubuntu Linux系統),有關於環境設定及操作方式的常見問題,例如:畫面尺寸調整、終端機開啟、剪貼簿共用及檔案共享等,並提供詳細步驟與圖示說明。
Thumbnail
2025/06/26
這篇文章說明如何在Win11系統下,使用VirtualBox虛擬機器(Ubuntu Linux系統),有關於環境設定及操作方式的常見問題,例如:畫面尺寸調整、終端機開啟、剪貼簿共用及檔案共享等,並提供詳細步驟與圖示說明。
Thumbnail
看更多
你可能也想看
Thumbnail
2025 vocus 推出最受矚目的活動之一——《開箱你的美好生活》,我們跟著創作者一起「開箱」各種故事、景點、餐廳、超值好物⋯⋯甚至那些讓人會心一笑的生活小廢物;這次活動不僅送出了許多獎勵,也反映了「內容有價」——創作不只是分享、紀錄,也能用各種不同形式變現、帶來實際收入。
Thumbnail
2025 vocus 推出最受矚目的活動之一——《開箱你的美好生活》,我們跟著創作者一起「開箱」各種故事、景點、餐廳、超值好物⋯⋯甚至那些讓人會心一笑的生活小廢物;這次活動不僅送出了許多獎勵,也反映了「內容有價」——創作不只是分享、紀錄,也能用各種不同形式變現、帶來實際收入。
Thumbnail
嗨!歡迎來到 vocus vocus 方格子是台灣最大的內容創作與知識變現平台,並且計畫持續拓展東南亞等等國際市場。我們致力於打造讓創作者能夠自由發表、累積影響力並獲得實質收益的創作生態圈!「創作至上」是我們的核心價值,我們致力於透過平台功能與服務,賦予創作者更多的可能。 vocus 平台匯聚了
Thumbnail
嗨!歡迎來到 vocus vocus 方格子是台灣最大的內容創作與知識變現平台,並且計畫持續拓展東南亞等等國際市場。我們致力於打造讓創作者能夠自由發表、累積影響力並獲得實質收益的創作生態圈!「創作至上」是我們的核心價值,我們致力於透過平台功能與服務,賦予創作者更多的可能。 vocus 平台匯聚了
Thumbnail
打開 jupyter notebook 寫一段 python 程式,可以完成五花八門的工作,這是玩程式最簡便的方式,其中可以獲得很多快樂,在現今這種資訊發達的時代,幾乎沒有門檻,只要願意,人人可享用。 下一步,希望程式可以隨時待命聽我吩咐,不想每次都要開電腦,啟動開發環境,只為完成一個重複性高
Thumbnail
打開 jupyter notebook 寫一段 python 程式,可以完成五花八門的工作,這是玩程式最簡便的方式,其中可以獲得很多快樂,在現今這種資訊發達的時代,幾乎沒有門檻,只要願意,人人可享用。 下一步,希望程式可以隨時待命聽我吩咐,不想每次都要開電腦,啟動開發環境,只為完成一個重複性高
Thumbnail
這篇內容,將教你如何安裝GameMaker,並更改語言設定。包括GameMaker的下載說明、版本說明、安裝說明、語系更改。
Thumbnail
這篇內容,將教你如何安裝GameMaker,並更改語言設定。包括GameMaker的下載說明、版本說明、安裝說明、語系更改。
Thumbnail
本章節旨在介紹如何在不同操作系統上安裝和配置PHP環境,並使用命令行工具進行基礎操作。此外,還介紹了使用Visual Studio Code進行PHP開發的步驟,包括安裝擴展和設置調試環境。
Thumbnail
本章節旨在介紹如何在不同操作系統上安裝和配置PHP環境,並使用命令行工具進行基礎操作。此外,還介紹了使用Visual Studio Code進行PHP開發的步驟,包括安裝擴展和設置調試環境。
Thumbnail
此章節旨在引導讀者如何建立Java開發環境,包括安裝JDK、使用命令行工具編寫和運行Java程式,以及如何在Visual Studio Code、IntelliJ IDEA和Eclipse等IDE中設置和使用Java環境。
Thumbnail
此章節旨在引導讀者如何建立Java開發環境,包括安裝JDK、使用命令行工具編寫和運行Java程式,以及如何在Visual Studio Code、IntelliJ IDEA和Eclipse等IDE中設置和使用Java環境。
Thumbnail
想要進入工程師的世界,首先要先學會架設自己的Build code環境,有了編譯環境,接下來就可以安心的撰寫你想要的C語言程式啦! 如果你不知道該從何下手,那不妨先照著本篇文章的步驟做,Violet一步一步教你並解釋每個步驟的意義,很快你就會得到一個能編譯C語言程式碼的虛擬基環境哦!
Thumbnail
想要進入工程師的世界,首先要先學會架設自己的Build code環境,有了編譯環境,接下來就可以安心的撰寫你想要的C語言程式啦! 如果你不知道該從何下手,那不妨先照著本篇文章的步驟做,Violet一步一步教你並解釋每個步驟的意義,很快你就會得到一個能編譯C語言程式碼的虛擬基環境哦!
Thumbnail
本課程學習如何在 Kotlin 程式碼檔案中,設定 ImageView 圖片元件,顯示本地端圖片。
Thumbnail
本課程學習如何在 Kotlin 程式碼檔案中,設定 ImageView 圖片元件,顯示本地端圖片。
Thumbnail
本課程學習如何使用 Android Studio 常用快速鍵。
Thumbnail
本課程學習如何使用 Android Studio 常用快速鍵。
Thumbnail
本課程學習如何使用 Android Studio 建立的第一個應用程式專案:Hello World。
Thumbnail
本課程學習如何使用 Android Studio 建立的第一個應用程式專案:Hello World。
Thumbnail
本篇文章將介紹開發 Android 手機應用程式所需的開發軟體,Google 官方的開發工具 Android Studio。這款軟體不僅免費,還提供完整的支援,適合所有 Android 開發者使用。
Thumbnail
本篇文章將介紹開發 Android 手機應用程式所需的開發軟體,Google 官方的開發工具 Android Studio。這款軟體不僅免費,還提供完整的支援,適合所有 Android 開發者使用。
Thumbnail
根據初學者設計了 Kotlin 程式語言的基礎課程,從 Android Studio 到 Android App 開發,提供完整指引。由基礎開始,傳授開發技巧。課程分為三部分:環境安裝、常用元件與界面設計,以及高階技巧如 DataStore、Room 資料儲存與網路處理。
Thumbnail
根據初學者設計了 Kotlin 程式語言的基礎課程,從 Android Studio 到 Android App 開發,提供完整指引。由基礎開始,傳授開發技巧。課程分為三部分:環境安裝、常用元件與界面設計,以及高階技巧如 DataStore、Room 資料儲存與網路處理。
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News