1
私はKivyとAndroidからアプリを作ろうとしており、plyerを使ってデバイスセンサーにアクセスしています。私は電話をかけるとKivy Android APKがクラッシュする
私が働いています:
- Kivy:1.9.1
- Buildozer:0.32dev
- SO(デスクトップ):Ubuntuの14.04 LTS
- SOアンドロイド:マシュマロ6.0
ウェブチュートリアルから次のコードを取得しました:
#-*-coding:utf8;-*-
#qpy:2
#qpy:kivy
from kivy.app import App
from kivy.uix.label import Label
from kivy.uix.floatlayout import FloatLayout
from plyer import accelerometer
from kivy.clock import Clock
class UI(FloatLayout):
def __init__(self, **kwargs):
super(UI, self).__init__(**kwargs)
self.lblAcce = Label(text="Accelerometer: ") #create a label at the center
self.add_widget(self.lblAcce) #add the label at the screen
try:
accelerometer.enable() #enable the accelerometer
Clock.schedule_interval(self.update, 1.0/24) #24 calls per second
except:
self.lblAcce.text = "Fallo al iniciar el acelerometro" #error
def update(self, dt):
txt = ""
try:
txt = "Aceleracion: \nX = %.2f\nY = %.2f\nZ = %2.f " %(
accelerometer.acceleration[0], #read the X value
accelerometer.acceleration[1], # Y
accelerometer.acceleration[2]) # Z
except:
txt = "No se puede leer el acelerometro!" #error
self.lblAcce.text = txt #add the correct text
class TestApp(App):
def build(self):
# display a button with the text : Hello QPython
usi = UI()
return usi
if __name__== '__main__':
TestApp().run()
このbuildozer.specファイルでAPKを構築する(コメントブロックを脱い):
[app]
# (str) Title of your application
title = Acelerometro 1
# (str) Package name
package.name = acc1
# (str) Package domain (needed for android/ios packaging)
package.domain = org.test
# (str) Source code where the main.py live
source.dir = .
# (list) Source files to include (let empty to include all the files)
source.include_exts = py,png,jpg,kv,atlas
# (str) Application versioning (method 1)
version = 1.0
# (list) Application requirements
# comma seperated e.g. requirements = sqlite3,kivy
requirements = kivy, plyer
# (str) Supported orientation (one of landscape, portrait or all)
orientation = all
# (bool) Indicate if the application should be fullscreen or not
fullscreen = 1
[buildozer]
# (int) Log level (0 = error only, 1 = info, 2 = debug (with command output))
log_level = 2
# (int) Display warning if buildozer is run as root (0 = False, 1 = True)
warn_on_root = 1
私は
android.permissions
を設定するのを忘れたがそのことについては問題がありませんでした。問題は、私が(縦書きから横向きに)電話を倒す(反転)と、アプリがクラッシュすることです。私はそれをgoogled、しかし答えを見つけることができませんでした。何か案は?
ありがとうございました!
'android.minapi = 13'に設定してみてください – jligeza
新しいツールチェーンを使用している場合は、' buildozer android run logcat'(または 'buildozer android_new run logcat')を実行して、アプリがクラッシュします。 –
@jligezaそれは働いた!ありがとうございました!あなたは自分のためにSOのポイントを取ることができますし、それが必要なので、必要な場合は、先に進み、答えを投稿します。 =) –