麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 系統 > 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.companysz.com 哦.

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

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 久久精品国产久精国产 | 欧美黄色性生活视频 | 日本高清在线播放 | 国产成年人网站 | 久久精品久久久久 | 国产91精品一区二区麻豆亚洲 | 久久久久一区二区三区 | lutube成人福利在线观看 | 欧美一级性| 亚洲精品aa | 精品国产九九九 | 成人免费在线视频播放 | 日本在线播放一区二区 | 午夜视频你懂的 | 久久精品99久久久久久2456 | 精品国产乱码一区二区三区四区 | 久久成人国产精品 | 亚洲国产精品久久久久制服红楼梦 | 国产在线观看一区二区三区 | 日本欧美中文字幕 | av在线等| 精品一区二区三区免费爱 | 在线亚洲播放 | 色诱亚洲精品久久久久久 | 深夜网站在线观看 | 国产成人综合在线视频 | 亚洲精品 在线播放 | 精品国内视频 | 羞羞网站在线观看入口免费 | 一区二区三区日韩精品 | 91麻豆精品国产91久久久无需广告 | 精品国产九九九 | 久久久久久免费 | 91精品国产乱码久久久久 | 91精品国产91久久久久久 | 免费永久看羞羞片网站入口 | 春光影院理论片 | www.mitao | 免费高清一级欧美片在线观看 | 精品国产91久久久久久久妲己 | 黄在线观看 |