4
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

KivyアプリケーションをGoole Play Storeで公開する為に #5 python3でもAPKを作る(結果は失敗 -> その後成功)

Last updated at Posted at 2017-02-12

はじめに

 #2の記事にてPython2とKivyを使ったアプリケーションをAndroidのAPKにするやり方を書いたのですが、Python3でも実験段階ですができるようなので試してみます。尚、Python2の場合と重複する部分が多いので差分のみを書いていきます。

参考文献

AndroidNDKの代わりにCrystaX NDK

公式サイトよりCrystaX NDKのver10.3.2を落とします。
落とした物を解凍すると総File数約9万、総サイズ8GBとかなり重たいので注意してください。

現在はAndroidNDKでもできるようです。ここを参考に適切なversionのAndroidNDKを選んで下さい。

buildozer.specを書き換える

まずはandroid.ndk_pathの値を落としたCrystaXへのパスに変えます。

android.ndk_path = /somewhere/crystax-ndk-10.3.2

次にrequirementsの値にpython3crystaxを加えます。仮に元が

requirements = kivy

だったら

requirements = kivy,python3crystax

になります。

Build

$ buildozer android debug

実行すると以下のErrorがでました。

sh.CommandNotFound: python3.5

なのでpython3.5を入れて再度コマンドを打ったところ見事APKができました。しかし

アプリがクラッシュ

実機にInstallして起動すると即クラッシュしてしまいます。
以下が手がかりになりそうなlogcatの出力

D/dalvikvm( 5624): Trying to load lib /data/app-lib/jp.gottadiveintopython.mostx-1/libSDL2.so 0x41bc4870
E/dalvikvm( 5624): dlopen("/data/app-lib/jp.gottadiveintopython.mostx-1/libSDL2.so") failed: Cannot load library: soinfo_link_image(linker.cpp:1635): could not load library "libcrystax.so" needed by "libSDL2.so"; caused by load_library(linker.cpp:745): library "libcrystax.so" not found
W/System.err( 5624): Cannot load library: soinfo_link_image(linker.cpp:1635): could not load library "libcrystax.so" needed by "libSDL2.so"; caused by load_library(linker.cpp:745): library "libcrystax.so" not found

APKを解凍して中身を見たところ確かにlibcrystax.soは入っているのですが...。

2017/12/14(追記)

久々にPackagingを試してみた所、成功しました。以前試した時との違いは

  1. buildozerやpython-for-androidのversionが上がっている
  2. jdk7とjdk8が混在していない

しか思いあたらないので、原因は2だったんじゃないかと思います。

記事一覧

#1 Kivy Launcherで動作確認
#2 APKを作成
#3は削除(GooglePlayの開発者登録をするだけの記事)
#4 APKをリリース用にビルド、署名、公開
#5 Python3でもAPKを作る(結果は失敗 -> その後成功)

4
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?