使用buildoz部署Android应用程序时在启动时崩溃

2024-05-18 11:05:25 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在python2.7下编写一个Android应用程序,使用Kivy库和buildozer来构建/部署到Android设备上。该设备是一个华硕ZenPad 3s10,并开启了调试选项。它没有被扎根,因为我知道这个设备目前不能被扎根。在

我可以构建apk,但是当我运行buildozer android deploy run logcat > log.txt时,应用程序永远无法通过平板电脑上的Kivy splash屏幕,唯一的消息是“ETS Demo has stopped”。在

在日志中,问题的原因在我看来是由以下几行给出的:

--------- beginning of crash  
08-03 18:39:41.807   441   441 F libc    : unable to stat file for the executable "/system/bin/sh": Permission denied  
08-03 18:39:41.807   441   441 F libc    : Fatal signal 6 (SIGABRT), code -6 in tid 441 (sh)  
08-03 18:39:41.807   441   441 F libc    : Unable to open connection to debuggerd: Connection refused

我不知道这意味着什么,我也没能找到任何人有类似的问题。任何帮助将不胜感激!在

这是我的buildozer.spec文件:

^{pr2}$

这是日志文件

# Check configuration tokens
# Ensure build layout
# Check configuration tokens
# Preparing build
# Check requirements for android
# Run 'dpkg --version'
# Cwd None
Debian 'dpkg' package management program version 1.18.4 (amd64).
This is free software; see the GNU General Public License version 2 or
later for copying conditions. There is NO warranty.
# Search for Git (git)
#  -> found at /usr/bin/git
# Search for Cython (cython)
#  -> found at /usr/local/bin/cython
# Search for Java compiler (javac)
#  -> found at /usr/lib/jvm/java-8-openjdk-amd64/bin/javac
# Search for Java keytool (keytool)
#  -> found at /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/keytool
# Install platform
# Run 'pip install -q --user "appdirs" "colorama>=0.3.3" "sh>=1.10" "jinja2" "six"'
# Cwd None
# Apache ANT found at /home/alexandre/.buildozer/android/platform/apache-ant-1.9.4
# Android SDK found at /home/alexandre/.buildozer/android/platform/android-sdk-20
# Android NDK found at /home/alexandre/.buildozer/android/platform/android-ndk-r9c
# Check application requirements
# Check garden requirements
# Compile platform
# Run '/usr/bin/python -m pythonforandroid.toolchain create --dist_name=etsdemo --bootstrap=sdl2 --requirements=kivy,numpy,scipy,dlib,opencv,scikit-image,scikit-learn,imutils --arch armeabi-v7a --copy-libs --color=always --storage-dir=/home/alexandre/Desktop/Demo/.buildozer/android/platform/build'
# Cwd /home/alexandre/Desktop/Demo/.buildozer/android/platform/python-for-android-master
# Run '/home/alexandre/.buildozer/android/platform/android-sdk-20/platform-tools/adb devices'
# Cwd None
List of devices attached
* daemon not running. starting it now at tcp:5037 *
* daemon started successfully *
H1NPCV026140PM7 device

# Deploy on H1NPCV026140PM7
# Run '/home/alexandre/.buildozer/android/platform/android-sdk-20/platform-tools/adb install -r "/home/alexandre/Desktop/Demo/bin/ETSDemo-0.1-debug.apk"'
# Cwd /home/alexandre/.buildozer/android/platform
# Application pushed.
# Run on H1NPCV026140PM7
# Run '/home/alexandre/.buildozer/android/platform/android-sdk-20/platform-tools/adb shell am start -n org.innodem.etsdemo/org.kivy.android.PythonActivity -a org.kivy.android.PythonActivity'
# Cwd /home/alexandre/.buildozer/android/platform
Starting: Intent { act=org.kivy.android.PythonActivity cmp=org.innodem.etsdemo/org.kivy.android.PythonActivity }
# Application started.
# Run 'dpkg --version'
# Cwd None
Debian 'dpkg' package management program version 1.18.4 (amd64).
This is free software; see the GNU General Public License version 2 or
later for copying conditions. There is NO warranty.
# Search for Git (git)
#  -> found at /usr/bin/git
# Search for Cython (cython)
#  -> found at /usr/local/bin/cython
# Search for Java compiler (javac)
#  -> found at /usr/lib/jvm/java-8-openjdk-amd64/bin/javac
# Search for Java keytool (keytool)
#  -> found at /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/keytool
# Run '/home/alexandre/.buildozer/android/platform/android-sdk-20/platform-tools/adb logcat '
# Cwd /home/alexandre/.buildozer/android/platform
--------- beginning of crash
08-03 18:39:41.807   441   441 F libc    : unable to stat file for the executable "/system/bin/sh": Permission denied
08-03 18:39:41.807   441   441 F libc    : Fatal signal 6 (SIGABRT), code -6 in tid 441 (sh)
08-03 18:39:41.807   441   441 F libc    : Unable to open connection to debuggerd: Connection refused
08-03 18:39:41.827   449   449 F libc    : unable to stat file for the executable "/system/bin/sh": Permission denied
08-03 18:39:41.827   449   449 F libc    : Fatal signal 6 (SIGABRT), code -6 in tid 449 (sh)
08-03 18:39:41.827   449   449 F libc    : Unable to open connection to debuggerd: Connection refused
08-03 18:39:41.840   451   451 F libc    : unable to stat file for the executable "/system/bin/sh": Permission denied
08-03 18:39:41.840   451   451 F libc    : Fatal signal 6 (SIGABRT), code -6 in tid 451 (sh)
08-03 18:39:41.840   451   451 F libc    : Unable to open connection to debuggerd: Connection refused

编辑:
以下是完整日志的链接:https://www.dropbox.com/s/1jpg2jx2ddxqul0/log.txt?dl=0

我正在Ubuntu 16.04上构建。我的硬件规格如下:

  • 内存:16.6 GiB
  • 处理器:Intel Core i7-4790 CPU@3.60GHz x 8
  • 图形:NV126上的镓0.4
  • 操作系统类型:64位

我尝试部署的平板电脑运行的是Android 7.0。我不能说太多的应用程序,因为我是在保密协议,但它涉及面部特征识别使用移动设备的摄像头。我没有直接使用scipy,但我将它包含在需求列表中,因为我正在使用的其他库都依赖它。在

我在让仿真器在我的系统上工作时遇到问题。我会尽快更新这篇文章。在


Tags: torunhomeforbinusrshat