2016-04-09 22 views
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、しかし答えを見つけることができませんでした。何か案は?

ありがとうございました!

+0

'android.minapi = 13'に設定してみてください – jligeza

+0

新しいツールチェーンを使用している場合は、' buildozer android run logcat'(または 'buildozer android_new run logcat')を実行して、アプリがクラッシュします。 –

+0

@jligezaそれは働いた!ありがとうございました!あなたは自分のためにSOのポイントを取ることができますし、それが必要なので、必要な場合は、先に進み、答えを投稿します。 =) –

答えて

2

バグの可能性があります。android.minapi = 13以上に設定してください。

関連する問題