kivy / python-for-android

Turn your Python application into an Android APK
https://python-for-android.readthedocs.io
MIT License
8.32k stars 1.84k forks source link

Completely clean install of minimal application fails to launch on Android 6 #752

Closed dessant closed 5 years ago

dessant commented 8 years ago

From @Hubro on May 19, 2016 14:49

I have crystax NDK 10.3.1 installed, and a completely clean Python 3.5.1 virtualenv with no packages installed except pip and setuptools.

I run:

pip install cython==0.21
pip install -r req.txt

Here is req.txt:

appdirs==1.4.0
buildozer==0.32
colorama==0.3.7
Cython==0.21
Jinja2==2.8
sh==1.11
six==1.10.0
kivy==1.9.1

And here is main.py:

from kivy.app import App
from kivy.uix.button import Button

class SignalApp(App):
    def build(self):
        return Button(text="Signal app!")

SignalApp().run()

It runs fine using python main.py.

Then:

buildozer android_new debug
buildozer android_new deploy
buildozer android_new run

Here is my buildozer.spec:

[app]

# (str) Title of your application
title = Kvantel Signal App

# (str) Package name
package.name = signal_app

# (str) Package domain (needed for android/ios packaging)
package.domain = org.kvantel

# (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

# (list) List of inclusions using pattern matching
#source.include_patterns = assets/*,images/*.png

# (list) Source files to exclude (let empty to not exclude anything)
#source.exclude_exts = spec

# (list) List of directory to exclude (let empty to not exclude anything)
#source.exclude_dirs = tests, bin

# (list) List of exclusions using pattern matching
#source.exclude_patterns = license,images/*/*.jpg

# (str) Application versioning (method 1)
version = 0.1

# (str) Application versioning (method 2)
# version.regex = __version__ = ['"](.*)['"]
# version.filename = %(source.dir)s/main.py

# (list) Application requirements
# comma seperated e.g. requirements = sqlite3,kivy
requirements = python3crystax,kivy

# (str) Custom source folders for requirements
# Sets custom source for any requirements with recipes
# requirements.source.kivy = ../../kivy

# (list) Garden requirements
#garden_requirements =

# (str) Presplash of the application
#presplash.filename = %(source.dir)s/data/presplash.png

# (str) Icon of the application
#icon.filename = %(source.dir)s/data/icon.png

# (str) Supported orientation (one of landscape, portrait or all)
orientation = landscape

# (list) List of service to declare
#services = NAME:ENTRYPOINT_TO_PY,NAME2:ENTRYPOINT2_TO_PY

#
# Android specific
#

# (bool) Indicate if the application should be fullscreen or not
fullscreen = 0

# (list) Permissions
#android.permissions = INTERNET

# (int) Android API to use
#android.api = 19

# (int) Minimum API required
#android.minapi = 9

# (int) Android SDK version to use
#android.sdk = 20

# (str) Android NDK version to use
#android.ndk = 10.3.1

# (bool) Use --private data storage (True) or --dir public storage (False)
#android.private_storage = True

# (str) Android NDK directory (if empty, it will be automatically downloaded.)
android.ndk_path = /home/tomas/crystax-ndk-10.3.1

# (str) Android SDK directory (if empty, it will be automatically downloaded.)
#android.sdk_path =

# (str) ANT directory (if empty, it will be automatically downloaded.)
#android.ant_path =

# (str) python-for-android git clone directory (if empty, it will be automatically cloned from github)
#android.p4a_dir =

# (list) python-for-android whitelist
#android.p4a_whitelist =

# (bool) If True, then skip trying to update the Android sdk
# This can be useful to avoid excess Internet downloads or save time
# when an update is due and you just want to test/build your package
# android.skip_update = False

# (str) Android entry point, default is ok for Kivy-based app
#android.entrypoint = org.renpy.android.PythonActivity

# (list) List of Java .jar files to add to the libs so that pyjnius can access
# their classes. Don't add jars that you do not need, since extra jars can slow
# down the build process. Allows wildcards matching, for example:
# OUYA-ODK/libs/*.jar
#android.add_jars = foo.jar,bar.jar,path/to/more/*.jar

# (list) List of Java files to add to the android project (can be java or a
# directory containing the files)
#android.add_src =

# (str) python-for-android branch to use, if not master, useful to try
# not yet merged features.
#android.branch = master

# (str) OUYA Console category. Should be one of GAME or APP
# If you leave this blank, OUYA support will not be enabled
#android.ouya.category = GAME

# (str) Filename of OUYA Console icon. It must be a 732x412 png image.
#android.ouya.icon.filename = %(source.dir)s/data/ouya_icon.png

# (str) XML file to include as an intent filters in <activity> tag
#android.manifest.intent_filters =

# (list) Android additionnal libraries to copy into libs/armeabi
#android.add_libs_armeabi = libs/android/*.so
#android.add_libs_armeabi_v7a = libs/android-v7/*.so
#android.add_libs_x86 = libs/android-x86/*.so
#android.add_libs_mips = libs/android-mips/*.so

# (bool) Indicate whether the screen should stay on
# Don't forget to add the WAKE_LOCK permission if you set this to True
#android.wakelock = False

# (list) Android application meta-data to set (key=value format)
#android.meta_data =

# (list) Android library project to add (will be added in the
# project.properties automatically.)
#android.library_references =

# (str) Android logcat filters to use
#android.logcat_filters = *:S python:D

# (bool) Copy library instead of making a libpymodules.so
#android.copy_libs = 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

# (str) Path to build artifact storage, absolute or relative to spec file
# build_dir = ./.buildozer

# (str) Path to build output (i.e. .apk, .ipa) storage
# bin_dir = ./bin

It takes a while, but the build succeeds and deploys the app.

When the app runs on Android, it says "Loading..." for a second and then closes. If I try to bring the app to the foreground it says "Unfortunately, Kvantel Signal App has stopped."

Logcat output when running the app:

05-19 16:46:35.616  1752  2004 I art     : Starting a blocking GC Explicit
05-19 16:46:35.833  1752  2004 I art     : Explicit concurrent mark sweep GC freed 104234(7MB) AllocSpace objects, 47(1380KB) LOS objects, 30% free, 36MB/52MB, paused 1.054ms total 216.165ms
05-19 16:46:36.156   730   730 I MSM-irqbalance: Decided to move IRQ159 from CPU5 [P:0] to CPU2 [P:1] (banned)
05-19 16:46:36.381 19752 19752 I Process : Sending signal. PID: 19752 SIG: 9
05-19 16:46:36.409  2967  2967 V PhoneStatusBar: setLightsOn(true)
05-19 16:46:36.414  1752  3484 D GraphicsStats: Buffer count: 5
05-19 16:46:36.420  1752  2980 I ActivityManager: Process org.kvantel.signal_app (pid 19752) has died
05-19 16:46:36.439 19873 19873 I art     : Late-enabling -Xcheck:jni
05-19 16:46:36.441  1752  2980 V BoostFramework: BoostFramework() : mPerf = com.qualcomm.qti.Performance@8949e70
05-19 16:46:36.442  1752  2980 I ActivityManager: Start proc 19873:org.kvantel.signal_app/u0a331 for activity org.kvantel.signal_app/org.kivy.android.PythonActivity
05-19 16:46:36.481 19873 19873 V PythonActivity: My oncreate running
05-19 16:46:36.481 19873 19873 V SDL     : getting identifier
05-19 16:46:36.482 19873 19873 V SDL     : kind is drawable and name presplash
05-19 16:46:36.482 19873 19873 V SDL     : result is 2130837506
05-19 16:46:36.491 19873 19873 V PythonActivity: Ready to unpack
05-19 16:46:36.491 19873 19873 V PythonActivity: UNPACKING!!! private files
05-19 16:46:36.491 19873 19873 V SDL     : asked to get string private_version
05-19 16:46:36.491 19873 19873 V SDL     : getting identifier
05-19 16:46:36.491 19873 19873 V SDL     : kind is string and name private_version
05-19 16:46:36.491 19873 19873 V SDL     : result is 2130968577
05-19 16:46:36.491 19873 19873 V PythonActivity: Data version is 1463668406.8294966
05-19 16:46:36.492 19873 19873 V PythonActivity: About to do super onCreate
05-19 16:46:36.492 19873 19873 V SDL     : Device: E5823
05-19 16:46:36.492 19873 19873 V SDL     : Model: E5823
05-19 16:46:36.492 19873 19873 V SDL     : onCreate():null
05-19 16:46:36.505 19873 19873 V PythonUtil: Failed to load _io.so or unicodedata.so...but that's okay.
05-19 16:46:36.505 19873 19873 V PythonUtil: Unsatisfied linker when loading ctypes
05-19 16:46:36.505 19873 19873 V PythonUtil: Loaded everything!
05-19 16:46:36.508 19873 19873 V PythonActivity: Did super onCreate
05-19 16:46:36.508 19873 19873 V PythonActivity: Setting env vars for start.c and Python to use
05-19 16:46:36.508 19873 19873 V PythonActivity: Access to our meta-data...
05-19 16:46:36.509 19873 19873 I PythonActivity: Surface will NOT be transparent
05-19 16:46:36.509 19873 19873 V SDL     : onResume()
05-19 16:46:36.514 19873 19886 D OpenGLRenderer: Use EGL_SWAP_BEHAVIOR_PRESERVED: true
05-19 16:46:36.544 19873 19886 I Adreno  : QUALCOMM build                   : 1c8141a, I8f3b63409d
05-19 16:46:36.544 19873 19886 I Adreno  : Build Date                       : 01/12/16
05-19 16:46:36.544 19873 19886 I Adreno  : OpenGL ES Shader Compiler Version: XE031.06.00.02
05-19 16:46:36.544 19873 19886 I Adreno  : Local Branch                     : 
05-19 16:46:36.544 19873 19886 I Adreno  : Remote Branch                    : refs/tags/AU_LINUX_ANDROID_LA.BF64.1.2.2_RB4.06.00.00.180.011
05-19 16:46:36.544 19873 19886 I Adreno  : Remote Branch                    : NONE
05-19 16:46:36.544 19873 19886 I Adreno  : Reconstruct Branch               : NOTHING
05-19 16:46:36.556 19873 19886 I OpenGLRenderer: Initialized EGL, version 1.4
05-19 16:46:36.578  1752  2004 W AppOps  : Finishing op nesting under-run: uid 1000 pkg android code 24 time=1456845794313 duration=3670 nesting=0
05-19 16:46:36.581 19873 19873 V SDL     : surfaceCreated()
05-19 16:46:36.581 19873 19873 V SDL     : surfaceChanged()
05-19 16:46:36.581 19873 19873 V SDL     : pixel format RGB_565
05-19 16:46:36.581 19873 19873 V SDL     : Window size:1196x672
05-19 16:46:36.591 19873 19887 I SDL     : SDL_Android_Init()
05-19 16:46:36.592 19873 19887 I SDL     : SDL_Android_Init() finished!
05-19 16:46:36.592 19873 19887 I python  : Initialize Python for Android
05-19 16:46:36.592 19873 19887 I python  : Changing directory to the one provided by ANDROID_ARGUMENT
05-19 16:46:36.592 19873 19887 I python  : /data/user/0/org.kvantel.signal_app/files
05-19 16:46:36.592 19873 19887 I python  : Preparing to initialize python
05-19 16:46:36.592 19873 19887 I python  : crystax_python exists
05-19 16:46:36.592 19873 19887 I python  : calculated paths to be...
05-19 16:46:36.592 19873 19887 I python  : /data/user/0/org.kvantel.signal_app/files/crystax_python/stdlib.zip:/data/user/0/org.kvantel.signal_app/files/crystax_python/modules
05-19 16:46:36.592 19873 19887 I python  : set wchar paths...
05-19 16:46:36.624 19873 19873 V SDL     : onWindowFocusChanged(): true
05-19 16:46:36.626  1752  2004 I ActivityManager: Displayed org.kvantel.signal_app/org.kivy.android.PythonActivity: +3s203ms (total +2m30s327ms)
05-19 16:46:36.626  1752  2004 I Timeline: Timeline: Activity_windows_visible id: ActivityRecord{7541fd4 u0 org.kvantel.signal_app/org.kivy.android.PythonActivity t2283} time:32437722
05-19 16:46:36.644 19873 19873 I Timeline: Timeline: Activity_idle id: android.os.BinderProxy@d6955fd time:32437740
05-19 16:46:36.780 19873 19887 I python  : Initialized python
05-19 16:46:36.780 19873 19887 I python  : AND: Init threads
05-19 16:46:36.781 19873 19887 I python  : testing python print redirection
05-19 16:46:36.781 19873 19887 I python  : Android path ['.', '/data/user/0/org.kvantel.signal_app/files/crystax_python/stdlib.zip', '/data/user/0/org.kvantel.signal_app/files/crystax_python/modules', '/data/user/0/org.kvantel.signal_app/files/crystax_python/site-packages']
05-19 16:46:36.782 19873 19887 I python  : os.environ is environ({'PYTHON_NAME': 'python', 'ANDROID_ASSETS': '/system/app', 'SYSTEMSERVERCLASSPATH': '/system/framework/services.jar:/system/framework/ethernet-service.jar:/system/framework/wifi-service.jar', 'PYTHONHOME': '/data/user/0/org.kvantel.signal_app/files', 'ANDROID_DATA': '/data', 'ANDROID_ENTRYPOINT': 'main.pyo', 'ANDROID_ROOT': '/system', 'ANDROID_PRIVATE': '/data/user/0/org.kvantel.signal_app/files', 'ASEC_MOUNTPOINT': '/mnt/asec', 'EXTERNAL_STORAGE': '/sdcard', 'ANDROID_ARGUMENT': '/data/user/0/org.kvantel.signal_app/files', 'ANDROID_PROPERTY_WORKSPACE': '9,0', 'ANDROID_APP_PATH': '/data/user/0/org.kvantel.signal_app/files', 'ANDROID_STORAGE': '/storage', 'ANDROID_BOOTLOGO': '1', 'LD_PRELOAD': 'libNimsWrap.so', 'PYTHONPATH': '/data/user/0/org.kvantel.signal_app/files:/data/user/0/org.kvantel.signal_app/files/lib', 'PATH': '/sbin:/vendor/bin:/system/sbin:/system/bin:/system/xbin', 'BOOTCLASSPATH': '/system/framework/core-libart.jar:/system/framework/conscrypt.jar:/system/framework/okhttp.jar:/system/framework/core-junit.jar:/system/framework/bouncycastle.jar:/system/framework/ext.jar:/system/framework/framework.jar:/system/framework/telephony-common.jar:/system/framework/voip-common.jar:/system/framework/ims-common.jar:/system/framework/apache-xml.jar:/system/framework/org.apache.http.legacy.boot.jar:/system/framework/tcmiface.jar:/system/framework/WfdCommon.jar:/system/framework/oem-services.jar:/system/framework/com.qti.dpmframework.jar:/system/framework/dpmapi.jar:/system/framework/com.qti.location.sdk.jar:/system/framework/qcmediaplayer.jar:/system/framework/com.sonymobile.tvout.wifidisplay_impl.jar', 'ANDROID_SOCKET_zygote_secondary': '11'})
05-19 16:46:36.782 19873 19887 I python  : Android kivy bootstrap done. __name__ is __main__
05-19 16:46:36.782 19873 19887 I python  : AND: Ran string
05-19 16:46:36.782 19873 19887 I python  : Run user program, change dir and execute entrypoint
05-19 16:46:36.782 19873 19887 I python  : main.py
05-19 16:46:37.618 19873 19887 I python  : [INFO              ] [Logger      ] Record log in /data/user/0/org.kvantel.signal_app/files/.kivy/logs/kivy_16-05-19_4.txt
05-19 16:46:37.618 19873 19887 I python  : [INFO              ] [Kivy        ] v1.9.2-dev0
05-19 16:46:37.619 19873 19887 I python  : [INFO              ] [Python      ] v3.5.0 (default, Dec 24 2015, 05:56:40) 
05-19 16:46:37.619 19873 19887 I python  : [GCC 5.3 20151204]
05-19 16:46:37.779 19873 19887 W linker  : /data/data/org.kvantel.signal_app/files/crystax_python/site-packages/kivy/_event.so: is missing DT_SONAME will use basename as a replacement: "_event.so"
05-19 16:46:37.780 19873 19887 I python  :  Traceback (most recent call last):
05-19 16:46:37.780 19873 19887 I python  :    File "main.py", line 1, in <module>
05-19 16:46:37.781 19873 19887 I python  :      from kivy.app import App
05-19 16:46:37.781 19873 19887 I python  :    File "/data/user/0/org.kvantel.signal_app/files/crystax_python/site-packages/kivy/app.py", line 319, in <module>
05-19 16:46:37.782 19873 19887 I python  :      from kivy.base import runTouchApp, stopTouchApp
05-19 16:46:37.782 19873 19887 I python  :    File "/data/user/0/org.kvantel.signal_app/files/crystax_python/site-packages/kivy/base.py", line 30, in <module>
05-19 16:46:37.782 19873 19887 I python  :      from kivy.event import EventDispatcher
05-19 16:46:37.782 19873 19887 I python  :    File "/data/user/0/org.kvantel.signal_app/files/crystax_python/site-packages/kivy/event.py", line 8, in <module>
05-19 16:46:37.783 19873 19887 I python  :      import kivy._event
05-19 16:46:37.783 19873 19887 I python  :  ImportError: dlopen failed: cannot locate symbol "_Py_NoneStruct" referenced by "/data/data/org.kvantel.signal_app/files/crystax_python/site-packages/kivy/_event.so"...
05-19 16:46:37.812 19873 19887 I python  : Python for android ended.
05-19 16:46:37.835 19873 19873 V SDL     : onPause()
05-19 16:46:37.835 19873 19873 V SDL     : nativePause()
05-19 16:46:37.868  1752  3499 I ActivityManager: Config changes=480 {1.0 242mcc5mnc en_US ldltr sw360dp w360dp h568dp 320dpi nrml port finger -keyb/v/h -nav/h s.41 skinPackageSeq.1}
05-19 16:46:37.881  1752  2855 I InputReader: Reconfiguring input devices.  changes=0x00000004
05-19 16:46:37.881  1752  2855 I InputReader: Device reconfigured: id=5, name='clearpad', size 720x1280, orientation 0, mode 1, display id 0
05-19 16:46:37.892 19873 19873 V SDL     : onWindowFocusChanged(): false
05-19 16:46:37.920 19873 19873 V SDL     : surfaceChanged()
05-19 16:46:37.920 19873 19873 V SDL     : pixel format RGB_565
05-19 16:46:37.921 19873 19873 V SDL     : Window size:720x1136
05-19 16:46:37.928 19873 19894 I SDL     : SDL_Android_Init()
05-19 16:46:37.928 19873 19894 I SDL     : SDL_Android_Init() finished!
05-19 16:46:37.928 19873 19894 I python  : Initialize Python for Android
05-19 16:46:37.928 19873 19894 I python  : Changing directory to the one provided by ANDROID_ARGUMENT
05-19 16:46:37.928 19873 19894 I python  : /data/user/0/org.kvantel.signal_app/files
05-19 16:46:37.928 19873 19894 I python  : Preparing to initialize python
05-19 16:46:37.928 19873 19894 I python  : crystax_python exists
05-19 16:46:37.928 19873 19894 I python  : calculated paths to be...
05-19 16:46:37.928 19873 19894 I python  : /data/user/0/org.kvantel.signal_app/files/crystax_python/stdlib.zip:/data/user/0/org.kvantel.signal_app/files/crystax_python/modules
05-19 16:46:37.928 19873 19894 I python  : set wchar paths...
05-19 16:46:37.925  1003  1003 W ipacm   : type=1400 audit(0.0:29280): avc: denied { sendto } for path="/dev/socket/ipacm_log_file" scontext=u:r:ipacm:s0 tcontext=u:r:ipacm-diag:s0 tclass=unix_dgram_socket permissive=0 ppid=1 pcomm="init" pgid=782 pgcomm="ipacm"
05-19 16:46:37.925  1003  1003 W ipacm   : type=1400 audit(0.0:29281): avc: denied { sendto } for path="/dev/socket/ipacm_log_file" scontext=u:r:ipacm:s0 tcontext=u:r:ipacm-diag:s0 tclass=unix_dgram_socket permissive=0 ppid=1 pcomm="init" pgid=782 pgcomm="ipacm"
05-19 16:46:37.925  1003  1003 W ipacm   : type=1400 audit(0.0:29282): avc: denied { sendto } for path="/dev/socket/ipacm_log_file" scontext=u:r:ipacm:s0 tcontext=u:r:ipacm-diag:s0 tclass=unix_dgram_socket permissive=0 ppid=1 pcomm="init" pgid=782 pgcomm="ipacm"
05-19 16:46:37.925  1002  1002 W ipacm   : type=1400 audit(0.0:29283): avc: denied { sendto } for path="/dev/socket/ipacm_log_file" scontext=u:r:ipacm:s0 tcontext=u:r:ipacm-diag:s0 tclass=unix_dgram_socket permissive=0 ppid=1 pcomm="init" pgid=782 pgcomm="ipacm"
05-19 16:46:37.925  1002  1002 W ipacm   : type=1400 audit(0.0:29284): avc: denied { sendto } for path="/dev/socket/ipacm_log_file" scontext=u:r:ipacm:s0 tcontext=u:r:ipacm-diag:s0 tclass=unix_dgram_socket permissive=0 ppid=1 pcomm="init" pgid=782 pgcomm="ipacm"
05-19 16:46:37.950  3597  3597 I Timeline: Timeline: Activity_idle id: android.os.BinderProxy@31fdb35 time:32439046
05-19 16:46:37.970  1752  2004 I Timeline: Timeline: Activity_windows_visible id: ActivityRecord{423177e u0 com.sonyericsson.home/com.sonymobile.home.HomeActivity t2228} time:32439066
05-19 16:46:37.973 19873 19873 V SDL     : surfaceDestroyed()
05-19 16:46:37.973  1752  1768 I art     : Background partial concurrent mark sweep GC freed 9709(517KB) AllocSpace objects, 2(40KB) LOS objects, 30% free, 35MB/51MB, paused 1.335ms total 148.684ms
05-19 16:46:37.981 19873 19873 V SDL     : onDestroy()
05-19 16:46:38.021  1752  2004 I WindowManager: Screen frozen for +165ms due to Window{8e31b72 u0 NavigationBar}
05-19 16:46:38.265 19873 19894 I python  : Initialized python
05-19 16:46:38.266 19873 19894 I python  : AND: Init threads
05-19 16:46:38.266 19873 19894 I python  : testing python print redirection
05-19 16:46:38.268 19873 19894 I python  : Android path ['.', '/data/user/0/org.kvantel.signal_app/files/crystax_python/stdlib.zip', '/data/user/0/org.kvantel.signal_app/files/crystax_python/modules', '/data/user/0/org.kvantel.signal_app/files/crystax_python/site-packages']
05-19 16:46:38.268 19873 19894 I python  : os.environ is environ({'PYTHON_NAME': 'python', 'ANDROID_ASSETS': '/system/app', 'SYSTEMSERVERCLASSPATH': '/system/framework/services.jar:/system/framework/ethernet-service.jar:/system/framework/wifi-service.jar', 'PYTHONHOME': '/data/user/0/org.kvantel.signal_app/files', 'ANDROID_DATA': '/data', 'ANDROID_ENTRYPOINT': 'main.pyo', 'ANDROID_ROOT': '/system', 'ANDROID_PRIVATE': '/data/user/0/org.kvantel.signal_app/files', 'ASEC_MOUNTPOINT': '/mnt/asec', 'EXTERNAL_STORAGE': '/sdcard', 'ANDROID_ARGUMENT': '/data/user/0/org.kvantel.signal_app/files', 'ANDROID_PROPERTY_WORKSPACE': '9,0', 'ANDROID_APP_PATH': '/data/user/0/org.kvantel.signal_app/files', 'ANDROID_STORAGE': '/storage', 'ANDROID_BOOTLOGO': '1', 'LD_PRELOAD': 'libNimsWrap.so', 'PYTHONPATH': '/data/user/0/org.kvantel.signal_app/files:/data/user/0/org.kvantel.signal_app/files/lib', 'PATH': '/sbin:/vendor/bin:/system/sbin:/system/bin:/system/xbin', 'BOOTCLASSPATH': '/system/framework/core-libart.jar:/system/framework/conscrypt.jar:/system/framework/okhttp.jar:/system/framework/core-junit.jar:/system/framework/bouncycastle.jar:/system/framework/ext.jar:/system/framework/framework.jar:/system/framework/telephony-common.jar:/system/framework/voip-common.jar:/system/framework/ims-common.jar:/system/framework/apache-xml.jar:/system/framework/org.apache.http.legacy.boot.jar:/system/framework/tcmiface.jar:/system/framework/WfdCommon.jar:/system/framework/oem-services.jar:/system/framework/com.qti.dpmframework.jar:/system/framework/dpmapi.jar:/system/framework/com.qti.location.sdk.jar:/system/framework/qcmediaplayer.jar:/system/framework/com.sonymobile.tvout.wifidisplay_impl.jar', 'ANDROID_SOCKET_zygote_secondary': '11'})
05-19 16:46:38.268 19873 19894 I python  : Android kivy bootstrap done. __name__ is __main__
05-19 16:46:38.268 19873 19894 I python  : AND: Ran string
05-19 16:46:38.268 19873 19894 I python  : Run user program, change dir and execute entrypoint
05-19 16:46:38.268 19873 19894 I python  : main.py
05-19 16:46:39.955  3373  3373 W InputConnectionWrapper.ICC: Timed out waiting on IInputContextCallback
05-19 16:46:40.034  1752  2004 I art     : Starting a blocking GC Explicit
05-19 16:46:40.158 19873 19894 I python  : [INFO              ] [Logger      ] Record log in /data/user/0/org.kvantel.signal_app/files/.kivy/logs/kivy_16-05-19_5.txt
05-19 16:46:40.158 19873 19894 I python  : [INFO              ] [Kivy        ] v1.9.2-dev0
05-19 16:46:40.159 19873 19894 I python  : [INFO              ] [Python      ] v3.5.0 (default, Dec 24 2015, 05:56:40) 
05-19 16:46:40.159 19873 19894 I python  : [GCC 5.3 20151204]
05-19 16:46:40.175  1752  2004 I art     : Explicit concurrent mark sweep GC freed 3917(237KB) AllocSpace objects, 1(16KB) LOS objects, 30% free, 35MB/51MB, paused 946us total 141.220ms
05-19 16:46:40.474 19873 19894 W linker  : /data/data/org.kvantel.signal_app/files/crystax_python/site-packages/kivy/_event.so: is missing DT_SONAME will use basename as a replacement: "_event.so"
05-19 16:46:40.477 19873 19894 I python  :  Traceback (most recent call last):
05-19 16:46:40.477 19873 19894 I python  :    File "main.py", line 1, in <module>
05-19 16:46:40.478 19873 19894 I python  :      from kivy.app import App
05-19 16:46:40.478 19873 19894 I python  :    File "/data/user/0/org.kvantel.signal_app/files/crystax_python/site-packages/kivy/app.py", line 319, in <module>
05-19 16:46:40.480 19873 19894 I python  :      from kivy.base import runTouchApp, stopTouchApp
05-19 16:46:40.480 19873 19894 I python  :    File "/data/user/0/org.kvantel.signal_app/files/crystax_python/site-packages/kivy/base.py", line 30, in <module>
05-19 16:46:40.481 19873 19894 I python  :      from kivy.event import EventDispatcher
05-19 16:46:40.482 19873 19894 I python  :    File "/data/user/0/org.kvantel.signal_app/files/crystax_python/site-packages/kivy/event.py", line 8, in <module>
05-19 16:46:40.482 19873 19894 I python  :      import kivy._event
05-19 16:46:40.482 19873 19894 I python  :  ImportError: dlopen failed: cannot locate symbol "_Py_NoneStruct" referenced by "/data/data/org.kvantel.signal_app/files/crystax_python/site-packages/kivy/_event.so"...
05-19 16:46:40.572 19873 19894 I python  : Python for android ended.
05-19 16:46:40.605 19873 19873 W IInputConnectionWrapper: getTextBeforeCursor on inactive InputConnection
05-19 16:46:40.605 19873 19873 W IInputConnectionWrapper: getSelectedText on inactive InputConnection
05-19 16:46:40.606  3373  3384 I InputConnectionWrapper.ICC: Got out-of-sequence callback 1338 (expected 1339) in setTextBeforeCursor, ignoring.
05-19 16:46:40.606 19873 19873 W IInputConnectionWrapper: getTextAfterCursor on inactive InputConnection
05-19 16:46:40.607  3373  3373 E InputEventModelImpl: onStartInput event aborted: com.touchtype.keyboard.c.ae: could not obtain extracted text (class com.touchtype.keyboard.c.ae)
05-19 16:46:40.611  3373  3373 W KeyLabelResolver: Failed to fetch resource bundle for %s, using fallback bundle
05-19 16:46:40.611  3373  3373 W KeyLabelResolver: java.io.FileNotFoundException: key_label_bundles/nn.dat
05-19 16:46:40.611  3373  3373 W KeyLabelResolver:  at android.content.res.AssetManager.openAsset(Native Method)
05-19 16:46:40.611  3373  3373 W KeyLabelResolver:  at android.content.res.AssetManager.open(AssetManager.java:339)
05-19 16:46:40.611  3373  3373 W KeyLabelResolver:  at android.content.res.AssetManager.open(AssetManager.java:313)
05-19 16:46:40.611  3373  3373 W KeyLabelResolver:  at com.touchtype.keyboard.d.k.b(KeyLabelResolver.java:80)
05-19 16:46:40.611  3373  3373 W KeyLabelResolver:  at com.touchtype.keyboard.d.k.a(KeyLabelResolver.java:64)
05-19 16:46:40.611  3373  3373 W KeyLabelResolver:  at com.touchtype.keyboard.d.k.a(KeyLabelResolver.java:54)
05-19 16:46:40.611  3373  3373 W KeyLabelResolver:  at com.touchtype.keyboard.d.d.<init>(KeyFactory.java:283)
05-19 16:46:40.611  3373  3373 W KeyLabelResolver:  at com.touchtype.keyboard.ak.a(KeyboardLoader.java:677)
05-19 16:46:40.611  3373  3373 W KeyLabelResolver:  at com.touchtype.keyboard.at.a(KeyboardSwitcher.java:840)
05-19 16:46:40.611  3373  3373 W KeyLabelResolver:  at com.touchtype.keyboard.at.a(KeyboardSwitcher.java:601)
05-19 16:46:40.611  3373  3373 W KeyLabelResolver:  at com.touchtype.keyboard.at.a(KeyboardSwitcher.java:413)
05-19 16:46:40.611  3373  3373 W KeyLabelResolver:  at com.touchtype.keyboard.at.a(KeyboardSwitcher.java:556)
05-19 16:46:40.611  3373  3373 W KeyLabelResolver:  at com.touchtype.keyboard.service.TouchTypeSoftKeyboard.onConfigurationChanged(TouchTypeSoftKeyboard.java:741)
05-19 16:46:40.611  3373  3373 W KeyLabelResolver:  at android.app.ActivityThread.performConfigurationChanged(ActivityThread.java:4271)
05-19 16:46:40.611  3373  3373 W KeyLabelResolver:  at android.app.ActivityThread.handleConfigurationChanged(ActivityThread.java:4344)
05-19 16:46:40.611  3373  3373 W KeyLabelResolver:  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1499)
05-19 16:46:40.611  3373  3373 W KeyLabelResolver:  at android.os.Handler.dispatchMessage(Handler.java:102)
05-19 16:46:40.611  3373  3373 W KeyLabelResolver:  at android.os.Looper.loop(Looper.java:224)
05-19 16:46:40.611  3373  3373 W KeyLabelResolver:  at android.app.ActivityThread.main(ActivityThread.java:5514)
05-19 16:46:40.611  3373  3373 W KeyLabelResolver:  at java.lang.reflect.Method.invoke(Native Method)
05-19 16:46:40.611  3373  3373 W KeyLabelResolver:  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
05-19 16:46:40.611  3373  3373 W KeyLabelResolver:  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
05-19 16:46:40.643  3373  3373 I Choreographer: Skipped 163 frames!  The application may be doing too much work on its main thread.
05-19 16:46:41.165   730   730 I MSM-irqbalance: Decided to move IRQ65 from CPU2 to CPU0
05-19 16:46:41.531  1752  1752 I EntropyMixer: Writing entropy...

I see a couple of exceptions, but I don't know what they mean or how to fix them.

Can you replicate this error?

Copied from original issue: kivy/kivy#4292

Want to back this issue? Post a bounty on it! We accept bounties via Bountysource.

dessant commented 8 years ago

From @kived on May 20, 2016 14:43

Looks like Kivy isn't linking against libpython - I believe this has been an issue with other recipes as well when using python3crystax.

inclement commented 5 years ago

p4a is currently working fine on Android 6.