2016-03-22 7 views
0

Ich habe Python 2.7.6, die neuesten Kivy und Buildozer installiert. Jetzt möchte ich Firebase für Python verwenden, heruntergeladen von: sudo pip install python-firebase.Implementieren Python-Firebase in Android

Ich kann dies zu den Anforderungen in der Datei buildozer.spec als Python-Firebase hinzufügen. Das alles funktioniert gut und in den Ordner .buildozer/applibs/I got:

Feuerbasis, python_firebase-1.2.dist-Info, Anfragen, Anfragen-2.9.1.dist-info.

So erwarte ich, dass ich Firebase in meiner Anwendung importieren konnte, aber das funktioniert nicht. wenn ich hinzufüge: from firebase import firebase kann die app auf android nicht einmal laufen (ich sehe das kivy app logo, aber dann schaltet sich die app ab).

Kann mir jemand erklären warum und was sind die nächsten Schritte?

bearbeiten 1: I/python (14201): File "/home/notwaka/Desktop/App/.buildozer/android/app/_applibs/firebase/__init__.py", line 3, in <module> I/python (14201): File "/home/notwaka/Desktop/App/.buildozer/android/app/_applibs/firebase/async.py", line 1, in <module> I/python (14201): File "/home/notwaka/Desktop/App/.buildozer/android/platform/python-for-android/build/python-install/lib/python2.7/multiprocessing/__init__.py", line 84, in <module> I/python (14201): ImportError: No module named _multiprocessing I/python (14201): Python for android ended.

+0

Was funktioniert nicht und was sind die Fehler? – jligeza

+0

Wenn ich benutze: 'Buildozer Android Debug Deploy-Lauf 'schließt die App. Und das, weil ich hinzufüge: von Firebase Import Firebase. Ich sehe keinen Fehler. –

+0

Fehler sind in logcat verfügbar. Dies ist Standard-Android-Entwicklungswissen. –

Antwort

2

Das multiprocessing-Modul ist nicht mit bionischen (Android libc) aufgrund von Inkompatibilitäten in Android unterstützt. Ich würde vorschlagen, das Firebase Android SDK über Pyjnius zu benutzen oder einfach Web-Anfragen mit Kivys UrlRequest oder Twisted zu machen - es ist schließlich nur eine REST-API.

+0

okey, danke! ~ Könnten Sie mir auch erklären, wie man die nicht-asynchronen Methoden in einem Thread ausführt? Weil ich es nur benutzen will, muss ich den Code bearbeiten. –

+0

Eigentlich, mehr auf den Firebase-Code schauen, ist das nicht möglich. Es importiert automatisch Multiprozessing, ob Sie es verwenden werden oder nicht. Ich habe meine Antwort aktualisiert. –

+0

Ich löste es jetzt mit den Anfragen python lib. Es war eigentlich ganz einfach, jetzt brauche ich keine Firebase-Lib. Vielen Dank! @ Ryan-P –

Verwandte Themen