亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 系統 > Mac OS > 正文

mac系統中kivy打包為apk安裝包步驟

2024-09-09 21:59:16
字體:
來源:轉載
供稿:網友

Kivy是一套專門用于跨平臺快速應用開發的開源框架,使用Python和Cython編寫,對于多點觸控有著非常良好的支持了,下文就介紹一個在mac系統中kivy打包為apk安裝包過程,希望能幫助到各位同學哦.

廢話:目的是為了做移動開發,這篇重點在 android 開發上,為了確認能夠正確編譯為 apk,我首先在 mac 上嘗試的是完整打包 apk 的方式.

沒有網上說的那么麻煩,也不用去下載他的那個 ubuntu 的鏡像,就是坑有點多,另外要下載的東西多.整整一天,估計有一半的時間浪費在等待下載上了,沒有邊弄邊寫, 所有有些地方就囫圇說一下了,如果有讀者照著做過不去的,留言給我吧.

準備工作:我的環境是 mac, 安裝了 brew 以及 python 的 pip,安裝好 kivy. mac 下有 dmg,直接裝了就可以了,我用的 shadownsocks,基于自己的 vps.

一顆良好的心態,坑還是有些多,別砸電腦.遇到問題仔細看 log

步驟:官方有文檔,但是說的不詳細:http://kivy.org/docs/guide/packaging-android.html,重點介紹下 Buildozer 這個神器,省的很多功夫完全靠這個了.

一開始我還傻乎乎的自己去下載 android sdk ndk..

啥都不用管,首先安裝 Buildozer,代碼如下:

  1. git clone https://github.com/kivy/buildozer.git 
  2. cd buildozer 
  3. sudo python setup.py install 

隨意建立一個文件夾,名字就叫 test 吧.初始化為 buildozer 項目,代碼如下:

  1. mkdir test 
  2. cd test 
  3. buildozer init 

里面會生成配置文件buildozer.spec,暫時什么都不用管,也不用改,寫個 hello world,代碼如下:

  1. #!/usr/bin/env python 
  2. # -*- coding: utf-8 -*- 
  3. import kivy 
  4. from kivy.app import App 
  5. from kivy.uix.label import Label 
  6. __version__ = '0.1' 
  7. class MyApp(App): 
  8.     def build(self): 
  9.         return Label(text='Hello world'
  10. //Vevb.com 
  11. if __name__ == '__main__'
  12.     MyApp().run() 

注意 __version__ = '0.1'必須有,文件名保存為 main.py(和配置文件一致)

kivy main.py

看到可以正常運行就 ok 了.開始編譯:buildozer -v android debug

第一個坑(license 亂碼),執行上面的編譯,就會開始下載各種依賴了. android sdk ndk 什么都,你都不用管,然后突然的報了一個 python 的編碼錯誤,停下來了.

貌似是 unicodeerro 什么的,根據堆棧信息,我進到 expect.py,把報錯那段的內容 print 出來了,結果竟然是 sdk 或者是 ndk 的 license 的聲明,我擦,里面沒中文啊,各種地方我都沒用中文,咋個?

expect.py 也做了 utf-8 的編碼解碼.

最后仔細看了 license,竟然中間有一段不知道是什么鬼字符, print 出來是????

google 程序員是不是頭暈了,敲錯了.

我在各個地方都加了 reload(sys) utf-8 那個..木有用,幾乎要絕望了,突然想到,那說那個字符用 utf-8 根本沒法 decode 和 encode,expect.py 自行主張搞了一把,本來是好意,結果弄巧成拙了.

直接修改 expect.py,把報錯地方的 decode encode 全部去掉,讓其直接操作原始字符串..然后就過去了....

第二個坑(cython版本問題),編譯到后面,反正報了一個錯誤,類似是:

error Do not use this file, it is the result of a failed Cython compilation

各種誤解,日志也沒有更多信息..出錯位置似乎是在 cython 編譯時候.于是我把 cython 從當時的 Cython version 0.21 降級到了 Cython version 0.20,于是就過去了..

sudo pip install cython=0.20 --upgrade

命令對不對不太記得了,反正是這個意思,我完全是有神靈保佑才能過去的啊...哭!!!

第三個坑(編譯工具不齊全),眼瞅著是要開始打包了,結果報了似乎是這樣一個錯誤,代碼如下:

  1. Traceback (most recent call last): 
  2.   File "build.py", line 412, in <module> 
  3.     make_package(args) 
  4.   File "build.py", line 336, in make_package 
  5.     subprocess.check_call([ANT, arg]) 
  6.   File "/usr/lib64/python2.7/subprocess.py", line 542, in check_call 
  7.     raise CalledProcessError(retcode, cmd) 
  8. subprocess.CalledProcessError: Command '['ant', 'debug']' returned non-zero exit status 1  //Vevb.com 

讓人欲哭無淚了,錯誤信息基本沒有.這個錯誤信息上面是在執行這個,代碼如下:

  1. # Run "/usr/bin/python build.py --name 'My Application' --version 0.1 --package org.test.myapp --private /Users/bigzhu/android/.buildozer/android/app --sdk 14 --minsdk 8 --permiss 
  2. ion BLUETOOTH --orientation landscape debug" 

你個蛋蛋的,執行失敗敢把信息再清晰一點么?于是我想手工執行了看看錯誤,終于在項目文件夾下的:

.buildozer/android/platform/python-for-android/dist

找到了 build.py,一執行,說是android sdk platform-tools不存在...我擦!!!找到buildozer安裝了 sdk 在這里:~/.buildozer/android/platform/android-sdk-21/tools/

運行 android ,把 platform-tools 裝上去(我之前還裝了一個 sdk. 還加了環境變量,導致我裝錯地方,又重新裝了一次)

完成:期間還有其他的坑.這三個比較大,也比較坑人,小的我 google 下就過去了.所以闖關的勇士,有問題記得給我留言,因為細節我記不得了.原創是 bigzhu: http://www.49028c.com 哦.

插上手機,執行:buildozer android debug deploy run,在手機上看到 hello world 的時候,我幾乎都要熱淚盈眶了.

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产主播精品在线| 欧美日韩第一页| 成人a免费视频| 性欧美长视频免费观看不卡| 欧美一级电影在线| 亚洲午夜av久久乱码| 91国自产精品中文字幕亚洲| 精品久久久久久久久久久久久久| 亚洲精品久久久久中文字幕二区| 久久成人18免费网站| 国内精品视频在线| 精品国产一区二区三区四区在线观看| 亚洲第一网中文字幕| 日韩av网址在线观看| 日韩成人av在线播放| 欧美xxxx综合视频| 国产精品女人久久久久久| 黄色一区二区在线| 日韩美女免费视频| 亚洲精品久久久久久久久久久| 一夜七次郎国产精品亚洲| 亚洲第一精品久久忘忧草社区| 亚洲高清久久网| 国产一区私人高清影院| 日韩欧美福利视频| 色偷偷亚洲男人天堂| 日韩欧美a级成人黄色| 国产精品成av人在线视午夜片| 日韩成人中文字幕在线观看| 日本精品久久电影| 欧美视频在线观看免费| 国产精品海角社区在线观看| 精品国产福利在线| 亚洲精品午夜精品| 久久国内精品一国内精品| 亚洲日本成人网| 欧美又大又硬又粗bbbbb| 欧美一区二粉嫩精品国产一线天| 欧美大秀在线观看| 欧美日本黄视频| 精品久久久久久中文字幕大豆网| 久久精品亚洲94久久精品| 亚洲国产中文字幕在线观看| 欧美成人免费一级人片100| 日韩欧美在线免费| 久久久免费在线观看| 日韩欧美在线国产| 欧美做受高潮电影o| 狠狠色香婷婷久久亚洲精品| 欧洲永久精品大片ww免费漫画| 中文字幕日韩欧美| 自拍偷拍亚洲欧美| 91网站免费看| 日韩福利在线播放| 欧美极品xxxx| 国产噜噜噜噜久久久久久久久| 亚洲最大福利视频网| 欧美一区二区大胆人体摄影专业网站| 国产精品久久久久久影视| 亚洲成人精品视频| 久久成人精品一区二区三区| 国产午夜精品美女视频明星a级| 久久久久久国产精品久久| 欧美精品久久久久久久免费观看| 亚洲欧洲午夜一线一品| 亚洲视频在线观看| 国产精品日韩欧美综合| 国产偷国产偷亚洲清高网站| 国产va免费精品高清在线观看| 成人免费观看49www在线观看| 久久亚洲春色中文字幕| 国产午夜精品全部视频播放| 91精品国产综合久久男男| 国产精品免费网站| 日韩的一区二区| 在线日韩中文字幕| 亚洲欧美中文日韩在线v日本| 久久精品国产91精品亚洲| 91网站在线免费观看| 国产精品丝袜视频| 亚洲一区二区三区香蕉| 91成品人片a无限观看| 国内精品久久久| 久热在线中文字幕色999舞| 国产一区二区三区欧美| 久久精品欧美视频| 国产精品在线看| 午夜精品久久久久久久男人的天堂| 久久久久久久一区二区| 色哟哟亚洲精品一区二区| 午夜免费在线观看精品视频| 亚洲娇小xxxx欧美娇小| 亚洲欧美激情一区| 欧美精品成人在线| 亚洲午夜未满十八勿入免费观看全集| 亚洲一区二区三区视频播放| 中文字幕av一区二区| 成人做爽爽免费视频| 色综合久久88色综合天天看泰| 欧美激情xxxxx| 欧美噜噜久久久xxx| 91在线视频成人| 九九热精品在线| 亚洲精品综合精品自拍| 国产精品7m视频| 国产精品免费久久久久久| 精品五月天久久| 国产成人精品午夜| 按摩亚洲人久久| 欧美视频国产精品| 在线成人激情黄色| 欧美午夜精品久久久久久久| 国产91精品黑色丝袜高跟鞋| 欧美日韩中文字幕| 亚洲男人天堂网站| 色综合色综合网色综合| 中文字幕欧美日韩| 国内精品久久久久影院优| 青青在线视频一区二区三区| 久久久999精品视频| 国产精品第10页| 播播国产欧美激情| 国内精品模特av私拍在线观看| 91精品国产91久久久久久不卡| 欧美激情手机在线视频| 亚洲影视中文字幕| 成人深夜直播免费观看| 日韩av一区二区在线观看| 欧美性少妇18aaaa视频| 亚洲精品国产suv| 精品成人69xx.xyz| 亚洲国产精品推荐| 亚洲精品久久久久久久久久久久| 欧美资源在线观看| 狠狠色狠狠色综合日日小说| 亚洲国产精彩中文乱码av在线播放| 在线免费观看羞羞视频一区二区| 国产精品日韩欧美综合| 国产视频久久久久| 欧美一区二区三区……| 精品视频在线播放免| 国产精品亚发布| 亚洲免费视频在线观看| 日本韩国在线不卡| 亚洲欧美综合精品久久成人| 久久综合电影一区| 欧美精品激情视频| 久久精品中文字幕| 国内成人精品视频| 亚洲欧美日韩视频一区| 精品国产乱码久久久久久天美| 亚洲欧美第一页| 久久久久久中文字幕| 日韩电影免费在线观看中文字幕| 久久人人爽人人爽人人片av高清| 国产日产欧美精品| 中文字幕欧美国内| 亚洲黄色免费三级| 欧美日韩亚洲精品内裤| 国产精品国产自产拍高清av水多| 国产精品va在线| 亚洲精品久久久久中文字幕欢迎你| 亚洲美腿欧美激情另类| 黑人极品videos精品欧美裸|