0 情况介绍

最近有一个项目需要一个简单的手机客户端应用,由于项目是Python写的,所以希望手机客户端同样使用Python语言,查询后发现Python可以通过多种途径生成APK文件,经过多次安装尝试后选择了使用Kivy+Buildozer来进行apk文件的生成(其他生成方式见此链接)。
展示的项目比较简单,除了链接服务器外,现在仅添加了通过Owncloud获取网盘的图片功能(使用pyocclient包)。但是生成的APK直接闪退,由于网上的关于Buildozer的文档较少,所以在此记录下问题解决过程,后续有需要可以参考。

1 故障描述

使用Kivy+Buildozer后使用buildozer android debug deploy run进行打包上传后运行直接闪退,为了查明闪退原因,这里使用ADB来查看运行闪退的Log文件。

2 解决过程

adb shell进入手机调试终端。
使用run-as ${包名}来进入程序的目录,这里我的名字是org.test.myapp,所以使用 run-as org.test.myapp

进入应用空间。
进入files/app/.kivy/logs/目录后使用cat ${log文件名}查看输出。

可以看到原因是[WARNING] stderr: ModuleNotFoundError: No module named 'requests'未找到requests,所以在环境中安装sudo pip3 install requests后在buildozer.spec中的依赖项中添加requests: requirements = python3,kivy,requests,之后再次尝试运行buildozer android debug deploy run,经过一段时间的等待(吐槽每次部署测试都要准备一堆东西,等的时间够长)后,应用可以正常启动运行,故障解除继续搬砖 。
不行,还没有解除!
测试了可以开启应用,之前的问题是解除了,不过链接链接Owncloud的服务器后闪退了。
再次使用2中的过程输入log文件后如下:

这个比较明显,是网络请求没有权限被禁止了。查找buildozer.spec文件中关于权限的配置部分(其实就是ctrl+f查找permissions)得到如下内容:

找到后取消注释,重新部署。
部署过后问题还在,log文件的错误依旧,经过多个网站的查找(见3),也没有发现其他的解决办法。
既然是权限问题,在配置文件中给出权限就应该解决了,并且该程序在Ubuntu中运行正常,因此想到可能是因为打包未清理就又部署。所以执行清理buildozer android clean后再执行上述的打包部署,启动后完成同步Owncloud的任务。至此,问题解决,用时90Min。

3 一些可能会用到的网站

  1. Bulidozer Github
  2. Buildozer Issues Bookmarks
  3. Buildozer Discord Channel 这个是个聊天Web,里面回复信息都很及时,搜索功能也很赞。

Buildozer生成的APP闪退+PermissionError故障排除记录相关推荐

  1. 抓取android系统日志_记录一次定位app闪退故障

    在测试android客户端兼容性时,发现app闪退,上海的小伙伴需要闪退时的系统日志:故把快生锈的adb知识拿出来show一把: 1.下载adb工具包(adb的全称为Android Debug Bri ...

  2. APP闪退分析及Crash日志获取(PC端Log打印)

    在测试android客户端兼容性时,发现app闪退,上海的小伙伴需要闪退时的系统日志:故把快生锈的adb知识拿出来show一把: 1.下载adb工具包(adb的全称为Android Debug Bri ...

  3. 180508 - 解决有关VIVO的2018-04-01安全补丁导致的APP闪退问题

    解决有关VIVO的2018-04-01安全补丁导致的APP闪退问题 [√]问题原因猜测4: 最终解决方案 [√]问题原因猜测3: 尝试解决 [√成功] [×]问题原因猜测2: 尝试解决 [×失败] [ ...

  4. Genymotion 启动app闪退解决方案

    Genymotion 启动app闪退解决方案 参考文章: (1)Genymotion 启动app闪退解决方案 (2)https://www.cnblogs.com/Test-road-me/p/536 ...

  5. 记录一次uni-app按导航栏左边返回,app闪退问题

    正常流程,按app左边返回键,应该是回退到上一级页面,但目前遇到的是按返回键后,app直接退出. 先回顾下返回跳转页面都有哪几种方法: 1 uni.navigateTo(OBJECT) 保留当前页面, ...

  6. Android 页面跳转时发生双击导致app闪退的解决方案

    在页面跳转时双击双击,查阅了各种资料 尝试一:从双击事件出发,避免双击事件 例如重写onClick事件 public abstract class NoDoubleClickListener impl ...

  7. android studio项目改成android.mk编译APP闪退java.lang.UnsatisfiedLinkError: dalvik.system.PathClassLoader

    android9系统android studio项目改成用android.mk编译v7包--APP闪退java.lang.UnsatisfiedLinkError: dalvik.system.Pat ...

  8. 安卓开发笔记——APP闪退解决方案

    笔者在开发一个智能家居APP的过程中,遇到APP闪退的情况,将日志打印出来: 怀疑可能是布局文件的问题,最后发现是由于布局的View中的"V"误敲成了小写: 将布局相关内容改正过来 ...

  9. 移动端APP闪退的主要原因总结

    移动端APP闪退的主要原因总结如下: 1.空指针:对象没有初始化就使用了: 2.空函数:有事件源但没有对应的事件对象: 3.死循环:没有合理的循环控制流: 4.内存泄露:同一个对象不停地开辟,而且没有 ...

最新文章

  1. 基于长短读长和参考基因组的组装错误检测算法的研究
  2. ECC加密算法入门介绍
  3. Errno 256 No more mirrors to try
  4. linux的安装nmom命令,Linux下块设备查看命令lsblk详解
  5. 前端模板Nunjucks简介
  6. 火柴人小程序linux,火柴人你瞅啥小程序
  7. 分析深圳电信的新型HTTP劫持方式
  8. linux系统硬盘数量,Linux ext4文件系统划分磁盘inode数量
  9. Oracle常用数据字典表 Oracle常用数据字典表 查看当前用户的缺省表空间
  10. ImportError: cannot import name 'Graph' from 'pyecharts' 解决办法
  11. Python - shutil模块(2)——压缩目录、文件
  12. 阶段1 语言基础+高级_1-3-Java语言高级_09-基础加强_第3节 注解_16_注解_自定义注解_元注解...
  13. java的数据类型有哪些_java数据类型有哪些
  14. 车路协同科研教学与实训先导平台 ——一种面向新一代智能交通人才培养的综合实验平台及系统
  15. Disastrous Downtime
  16. 英语四级XYZ字母开头单词+托福高频单词
  17. 缺失数据填补基础方法(1)——k-Nearest Neighbors (kNN) 填补
  18. 华为硬件工程师社招机考题库_华为硬件工程师笔试、面试题
  19. mysql 计算农历_MySQL 获取农历年函数
  20. 【moodle】moodle dialog开发笔记 1

热门文章

  1. 【Google Play】APK 扩展包 ( 2021年09月02日最新处理方案 | 内部测试链接 | 安装 Google Play 中带 扩展文件 的 APK 安装包 | 验证下载的扩展文件 )
  2. 简谈FIR滤波器和IIR滤波器的区别
  3. spring学习-4-事务
  4. 如何把图片转换jpg格式呢?
  5. linux raid5模拟数据丢失,Linux服务器右异步RAID-5数据恢复实例分析
  6. Linux:进程管理 | 进程创建 | 进程终止 | 进程等待 | 进程替换
  7. 前端开发常用编辑器,你用过哪几个?
  8. redis安装(主从)
  9. Android 友盟统计 友盟推送 友盟分享快速集成
  10. zabbix php问题 Call to undefined function array_column()