快速定位Android闪退问题的方法

mytv-android教程:安卓电视/盒子配置IPTV直播源与进阶玩法 电视直播App五花八门,但真正稳定好用的却不多。IPTV直播源的播放原理并不复杂,本质上是通过网络获取流媒体地址,再由播放器解码呈现。与传统聚合应用不同,开源播放器更注重工具属性,它不内置任何频道内容,而是让用户自行维护直播源,从而规避失效与版权风险。在安卓电视、电视盒子等场景中,这类播放器凭借轻量启动、遥控器友好和远程配置等优势,成为家庭影音折腾族的常用选择。本文即围绕mytv-android这一开源播放器,介绍其下载安装、直播源配置、EPG设置及常见问题排查,帮助用户快速搭建属于自己的电视直播观看方案。 阅读详情

写Android程序时,经常会遇到各种各样的问题导致应用闪退。下面就来总结下应用闪退时,我们有什么方法去定位问题。

首先我们应该用 adb logcat -v time 命令把日志打印出来,直接用AS的logcat也可以,只是有的时候logcat会出现清空日志的情况,还是adb命令的日志靠谱。

有了日志,可以通过查找以下几个字段来快速定位问题:

  • Exception:查看所有发生异常的地方,看看是不是有没有捕获到的异常。
    例如:下面这个异常就是日志打印出来的一个未捕获的异常,它可以准确地告诉我是哪个类的哪个方法,哪一行出了错误,这样就可以快速找到问题。
08-16 17:27:01.792 E/dalvikvm( 4392): threadid=1: thread exiting with uncaught exception (group=0x40a521f8)
08-16 17:27:01.822 E/System.err( 4392): java.lang.NoSuchMethodError: ****.setBackground
08-16 17:27:01.832 E/System.err( 4392):     at android.view.LayoutInflater.rInflate(LayoutInflater.java:747)
08-16 17:27:01.832 E/System.err( 4392):     at android.view.LayoutInflater.inflate(LayoutInflater.java:489)
08-16 17:27:01.842 E/System.err( 4392):     at android.view.LayoutInflater.inflate(LayoutInflater.java:396)
  • ANR:查看应用是否出现了ANR的情况。
    在Android中,程序的响应性是由Activity Manager与Window Manager系统服务来负责监控的。当系统监测到下面的条件之一时会显示ANR的对话框:
    (1)对输入事件(例如硬件点击或者屏幕触摸事件),5秒内都无响应。
    (2)BroadReceiver不能够在10秒内结束接收到任务。

    例如:下面这个ANR异常就是由于BroadReceiver产生的,其原因是因为CPU占用达到100%出现的,这个时候就要去看下是自己进程的CPU占用率过高,还是别的程序CPU占用率过高。如果是自己的程序,就要看日志,执行了什么操作导致CPU占用率太高。我这里是同时播放很多gif图的时候出现的。

ANR in net.myvst.v2:xg_service_v3
08-16 17:25:22.802 E/ActivityManager( 3705): Reason: Broadcast of Intent { act=android.net.conn.CONNECTIVITY_CHANGE flg=0x10000010 cmp=net.myvst.v2/com.tencent.android.tpush.XGPushReceiver (has extras) }
08-16 17:25:22.802 E/ActivityManager( 3705): Load: 44.05 / 20.02 / 10.34
08-16 17:25:22.802 E/ActivityManager( 3705): CPU usage from 18010ms to 190ms ago:
08-16 17:25:22.802 E/ActivityManager( 3705):   30% 3851/com.vlctech.tvhome: 23% user + 6.9% kernel / faults: 11118 minor
08-16 17:25:22.802 E/ActivityManager( 3705):   13% 3705/system_server: 11% user + 1.8% kernel / faults: 1450 minor
08-16 17:25:22.802 E/ActivityManager( 3705):   5.7% 4567/com.ktcp.video:push: 4.2% user + 1.5% kernel / faults: 3578 minor
08-16 17:25:22.802 E/ActivityManager( 3705):   3.9% 4662/net.myvst.v2: 3% user + 0.8% kernel / faults: 3531 minor
08-16 17:25:22.802 E/ActivityManager( 3705):   2.5% 74/surfaceflinger: 1.9% user + 0.6% kernel
08-16 17:25:22.802 E/ActivityManager( 3705):   1.7% 85/adbd: 0.1% user + 1.6% kernel
08-16 17:25:22.802 E/ActivityManager( 3705):   1.2% 4392/com.togic.livevideo: 1.2% user + 0% kernel / faults: 64 minor
08-16 17:25:22.802 E/ActivityManager( 3705):   1.2% 4642/com.moretv.android: 1.1% user + 0% kernel / faults: 672 minor
08-16 17:25:22.802 E/ActivityManager( 3705):   0.4% 3677/mediaserver: 0.3% user + 0.1% kernel / faults: 343 minor
08-16 17:25:22.802 E/ActivityManager( 3705):   0.7% 2277/logcat: 0.1% user + 0.6% kernel
08-16 17:25:22.802 E/ActivityManager( 3705):   0.7% 4327/com.dianshijia.newlive: 0.1% user + 0.6% kernel
08-16 17:25:22.802 E/ActivityManager( 3705):   0.6% 4677/net.myvst.v2: 0% user + 0.6% kernel / faults: 389 minor
08-16 17:25:22.802 E/ActivityManager( 3705):   0% 73/debuggerd: 0% user + 0% kernel / faults: 4 minor
08-16 17:25:22.802 E/ActivityManager( 3705):   0.2% 5/events/0: 0% user + 0.2% kernel
08-16 17:25:22.802 E/ActivityManager( 3705):   0.2% 3825/com.amlogic.inputmethod.remote: 0.1% user + 0.1% kernel / faults: 41 minor
08-16 17:25:22.802 E/ActivityManager( 3705):   0.2% 62/yaffs-bg-1: 0% user + 0.2% kernel
08-16 17:25:22.802 E/ActivityManager( 3705):   0.2% 3682/zygote: 0% user + 0.1% kernel / faults: 330 minor
08-16 17:25:22.802 E/ActivityManager( 3705):   0.2% 3954/com.wukongtv.wkhelper: 0.2% user + 0% kernel / faults: 48 minor
08-16 17:25:22.802 E/ActivityManager( 3705):   0.2% 4054/com.kehwin: 0.2% user + 0% kernel / faults: 66 minor
08-16 17:25:22.802 E/ActivityManager( 3705):   0.1% 59/mali/0: 0% user + 0.1% kernel
08-16 17:25:22.802 E/ActivityManager( 3705):   0.1% 3678/netd: 0.1% user + 0% kernel / faults: 153 minor
08-16 17:25:22.802 E/ActivityManager( 3705):   0.1% 10/sync_supers: 0% user + 0.1% kernel
08-16 17:25:22.802 E/ActivityManager( 3705):   0.1% 50/kthread_di: 0% user + 0.1% kernel
08-16 17:25:22.802 E/ActivityManager( 3705):  +0% 4701/chmod: 0% user + 0% kernel
08-16 17:25:22.802 E/ActivityManager( 3705):  +0% 4707/com.dangbeimarket: 0% user + 0% kernel
08-16 17:25:22.802 E/ActivityManager( 3705):  +0% 4729/com.dangbeimarket:bdservice_v1: 0% user + 0% kernel
08-16 17:25:22.802 E/ActivityManager( 3705):  +0% 4751/com.dangbeimarket:dangbei_web: 0% user + 0% kernel
08-16 17:25:22.802 E/ActivityManager( 3705):  +0% 4760/com.dangbeimarket:MonitorService: 0% user + 0% kernel
08-16 17:25:22.802 E/ActivityManager( 3705):  +0% 4769/com.dangbeimarket:appuninstallMonitor: 0% user + 0% kernel
08-16 17:25:22.802 E/ActivityManager( 3705):  +0% 4830/com.vlctech.upgradeservice: 0% user + 0% kernel
08-16 17:25:22.802 E/ActivityManager( 3705):  +0% 4854/net.myvst.v2:xg_service_v3: 0% user + 0% kernel
08-16 17:25:22.802 E/ActivityManager( 3705):  +0% 4884/net.myvst.v2:xg_service_v3: 0% user + 0% kernel
08-16 17:25:22.802 E/ActivityManager( 3705):  +0% 4915/cat: 0% user + 0% kernel
08-16 17:25:22.802 E/ActivityManager( 3705):  +0% 4916/cat: 0% user + 0% kernel
08-16 17:25:22.802 E/ActivityManager( 3705): 100% TOTAL: 76% user + 22% kernel + 0.4% irq + 0.3% softirq
  • OOM:当应用占用的内存超过了系统可以给应用分配的最大内存时,就会出现OOM。通常在decode Bitmap对象、在xml文件中inflate大的背景图片、内存泄露时,应用很容易就会出现OOM。
    例如:下面这个OOM就是在decode图片时出现的。解决这种异常可以采用更小的采样率或者直接更换小的图片。
08-17 20:35:38.311 D/dalvikvm( 5665): GC_BEFORE_OOM freed <1K, 17% free 54496K/65351K, paused 293ms, total 293ms
08-17 20:35:38.311 E/dalvikvm-heap( 5665): Out of memory on a 3686416-byte allocation.
08-17 20:35:38.311 I/dalvikvm( 5665): "main" prio=5 tid=1 RUNNABLE
08-17 20:35:38.311 I/dalvikvm( 5665):   | group="main" sCount=0 dsCount=0 obj=0x40d6f6a0 self=0x400460b0
08-17 20:35:38.311 I/dalvikvm( 5665):   | sysTid=5665 nice=0 sched=0/0 cgrp=apps handle=1074503472
08-17 20:35:38.311 I/dalvikvm( 5665):   | schedstat=( 0 0 0 ) utm=19045 stm=3308 core=1
08-17 20:35:38.311 I/dalvikvm( 5665):   at android.graphics.BitmapFactory.nativeDecodeAsset(Native Method)
08-17 20:35:38.311 I/dalvikvm( 5665):   at android.graphics.BitmapFactory.decodeStream(BitmapFactory.java:500)
08-17 20:35:38.311 I/dalvikvm( 5665):   at android.graphics.BitmapFactory.decodeResourceStream(BitmapFactory.java:353)
08-17 20:35:38.311 I/dalvikvm( 5665):   at android.graphics.BitmapFactory.decodeResource(BitmapFactory.java:376)
Android语言基础教程(12)Android应用程序的运行与调试:别让你的App在模拟器里“翻车”!手把手带你飙车式调试Android程序 你以为点了“运行”按钮就万事大吉?Too young!Android应用的运行与调试,是一场你与代码、设备、玄学问题的三方博弈。本文将带你深度潜入APK的诞生与运行之谜,把Logcat当成你的“行车记录仪”,用断点调试开启“子弹时间”,亲手捉拿那些导致闪退、卡顿的“元凶代码”。从“Hello World”的平稳落地,到复杂Bug的精准围剿,告别“跑不起来就重启”的初级操作,让你真正成为掌控App生死的“老司机”。附完整示例,一看就懂,一跑就会! 阅读详情

相关推荐

Cocos Creator安卓打包常见问题与解决方案

在移动游戏开发中,Cocos Creator作为流行的跨平台引擎,其安卓打包过程常遇到各种技术挑战。环境配置是基础但关键的一环,涉及JDK版本兼容性、Android SDK工具链完整性等核心要素。理解Gradle构建系统的工作原理能有效解决依赖冲突和缓存问题,而原生代码集成则需要掌握JNI规范与ABI兼容性。这些技术要点直接影响APK的生成质量与运行稳定性。针对Cocos Creator特有的打包流程,开发者常需处理包名规范、API级别配置等工程细节。通过系统化的环境验证、日志分析和分步构建策略,可以高效定

weixin_29967445的博客 299

Android 报错,闪退(错误)日志保存到手机内存中,以文本文件的形式保存

Android 报错,闪退(错误)日志保存到手机内存中,以文本文件的形式保存

qq_36570506的博客 2846

安卓逆向实战:从JADX静态分析到IDA二进制修改破解授权验证

在软件安全与移动应用分析领域,静态分析是一项基础且核心的技术,它允许安全研究人员在不运行程序的情况下,通过反编译和反汇编来理解其内部逻辑与潜在漏洞。其原理是通过工具将编译后的二进制代码(如APK中的DEX字节码)转换回更易读的中间形式(如Smali)或高级语言代码,从而还原程序的控制流和数据流。这项技术的价值在于能够深入剖析应用的安全机制、验证逻辑,并识别可被修改的关键点,是进行安全评估、漏洞挖掘和特定场景下合法研究的关键手段。典型的应用场景包括分析应用的授权验证流程、寻找敏感API调用以及理解恶意软件的行

weixin_33742618的博客 348

android应用解决闪退问题

在 Android 应用中解决闪退问题需要一些工具和方法,同时解决Android应用的闪退问题可能需要耐心和细心,因为崩溃可能由多种原因引起,包括内存问题、线程问题、依赖库问题等。以下是一些建议,希望对大家有所帮助。北京木奇移动技术有限公司,专业的软件外包开发公司,欢迎交流合作。

defdsdddev的博客 1907

在Android Studio编译运行的时候,代码没有报错,但是app闪退keep stopping...如何解决?

🏆本文收录于 《全栈 Bug 调优(实战版)》 专栏。专栏聚焦真实项目中的各类疑难 Bug,从成因剖析 → 排查路径 → 解决方案 → 预防优化全链路拆解,形成一套可复用、可沉淀的实战知识体系。无论你是初入职场的开发者,还是负责复杂项目的资深工程师,都可以在这里构建一套属于自己的「问题诊断与性能调优」方法论,助你稳步进阶、放大技术价值 。

**My Coding Family** 875

Android健康管理系统源码导入、核心模块与避坑指南

在移动应用开发中,SQLite作为轻量级嵌入式数据库,是Android本地数据持久化的常用方案,尤其适合存储用户健康档案、饮食记录等结构化数据。开发者通过SQLiteOpenHelper管理数据库生命周期,结合BMI计算逻辑与图表展示,即可构建功能完整的健康管理类App。这类应用不依赖云端服务,数据保存在设备本地,便于快速开发与课程演示,因此成为Android大作业与毕设的高频选题。从Gradle环境配置、Android Studio工程导入,到登录注册模块、数据表设计与MPAndroidChart图表集成

weixin_28285943的博客 269

Android开发adb命令和闪退日志

Android Debug Bridge,是 Android 开发/测试人员的强大工具,也是 Android 设备玩家的好玩具。安卓调试桥 (Android Debug Bridge, adb),是一种可用来操作手机设备或模拟器的命令行工具。它存在于 sdk/platform-tools 目录下。现在 Android Studio 已经将大部分 ADB 命令以图形化的形式实现了。

大模型训练 3633

ReportStudio入门教程(四十一) - 固定报表列宽

我们继续上一篇博客,让他看起来

什么是江湖? 3518

Android-实现记录“异常闪退“日志

在开发进程中,因某些未知缘由,应用在运行时异常闪退,然而却无法看到错误日志,着实令人难受。

qq_43209531的博客 1370

ADC选型实战:从参数指标到精准应用的工程指南

本文深入解析ADC(模数转换器)选型的关键参数与实战技巧,涵盖分辨率、转换误差等核心指标,并提供高精度温度测量、高速数据采集等五大应用场景的选型指南。通过实际案例和代码示例,详细讲解校准方法、功耗优化策略及常见问题排查,帮助工程师实现从参数指标到精准应用的工程实践。

weixin_29166013的博客 326

医学图像分割实战:基于TransUNet训练自己的眼底硬渗出物数据集(附完整代码)

本文详细介绍了基于TransUNet的眼底硬渗出物分割实战指南,涵盖数据预处理、模型调优、训练策略及性能优化等关键环节。通过代码复现和实验对比,展示了TransUNet在医学图像分割中的优势,为糖尿病视网膜病变的早期诊断提供技术支持。

weixin_42524708的博客 364

androidstudio调试下,闪退没有日志怎么解决 应用闪退日志

两个方案都是到提交到Bug里面,但注意居然不是必现的,那就要确认必现步骤,当提交Bug以后,开发定位到问题以后,要Bug里面备注,复现的步骤,然后Bug已解决,你要根据步骤在发生该问题的版本验证,是否必现,是必现步骤的话,就可以直接新版验证是否解决,无法必现要跟开发确认,进行次数验证以及版本监控,整体这才算对偶现Bug的闭环方案;假如当一个安卓app闪退了,然后操作发现不是的必现的时候,你是怎么解决,提交Bug的,怎么确定最后是否解决的?我提供两个方案,可以解决规避这些问题;

缘来的精彩的博客 2204

frp内网穿透(socks隧道)

在实验过程中还是遇到了挺多的问题,但好在大多都解决了。不过还是遗留了一些不懂的问题,等以后再慢慢研究了。最后,以上仅为个人的拙见,如何有不对的地方,欢迎各位师傅指正与补充,有兴趣的师傅可以一起交流学习。

2301_76227305的博客 1万+

90%的人都不知道如何正确关闭安卓偶现闪退的Bug

对于软件测试这个岗位或者职责来讲,就是保证软件质量,那保证软件质量的其中一个方法,就是提的Bug的关闭,如果无法正确的关闭,就无法保证质量,特别是对于目前使用普遍率高的安...

1486

Unity PBR实战:从零打造丝绸材质各向异性高光效果

本文详细介绍了在Unity中实现丝绸材质各向异性高光效果的PBR实战技巧。通过改造Standard Shader、适配IBL环境光以及高级效果调优,开发者可以创建出逼真的丝绸材质,展现动态光纹变化。文章包含关键代码示例和参数配置建议,特别适合需要提升材质表现力的Unity开发者。

weixin_29015483的博客 461

手把手带你编写miniQMT实盘量化执行程序(3) | 交易系统

本文介绍了miniQMT实盘量化执行系统的核心交易系统代码,重点讲解了其模块化设计和工作流程。系统采用主控类LiveSystem管理交易全流程,包含初始化引擎、交易日判断、交易时段划分(开盘前、盘中、收盘等)、主循环调度和异常处理等核心功能。作者详细解析了系统如何实现365天不间断运行、精准判断交易日、分阶段执行交易策略等功能,并强调系统的稳定性和异常处理机制。

1307

Android 查看闪退日志

Android 查看闪退日志 (1) APP闪退分析及Crash日志获取 https://blog.youkuaiyun.com/hairubb/article/details/78210824 app 闪退一般抓取mtklog看不出具体原因,即使有aee_exp文件夹产生,使用Logcatview工具也解析不出 具体的db文件 一、手机crash之后,如果弹出的“应用程序意外停止”的提示如果没有消失...

kuangben2000的博客 2万+

ArcFace vs 传统算法:实测MTCNN+ArcFace在PyCharm中的识别准确率(含完整对比数据)

本文通过PyCharm开发环境实测MTCNN+ArcFace组合在人脸识别中的性能表现,并与传统算法进行多维度对比。实验数据显示,ArcFace在LFW数据集上达到99.83%的准确率,显著优于传统方法。文章还提供了完整的代码实现和工程优化建议,为开发者提供实用的技术参考。

醉三国 235

关于AndroidStudio在真机安装的apk闪退(无法打开)的解决方案

关于AndroidStudio在真机安装的apk闪退(无法打开)的解决方案

wangchaoqi1985的博客 3055

倍福--手动加入第三方伺服的配置

客户在没有硬件情况下,希望手动配置硬件,添加第三方驱动器,本文介绍其操作流程 目 录 软硬件版本 3 1.1. 倍福Beckhoff 3 1.1.1. 控制器硬件 3 1.1.2. 控制软件 3 操作步骤 3 2.1. 添加电机XML文件 3 2.2. 创建EtherCAT 3 2.3. 添加新建项 3 2.4. 选择型号 4 2.5. 关联NC轴 5 软硬件版本 1.1. 倍福Beckhoff 1.1.1. 控制器硬件 TwinCAT控制制器,PC或者EPC,包括: 嵌入式控制器:CX5020-

weixin_41883890的博客 5329

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

java.lang.IllegalArgumentException: Invalid token limit 关于Android 11 获取通讯录闪退bug

这是关于获取手机通讯录闪退的bug,出现的问题,如果不是可以忽略。 然后我在网上找了蛮多帖子发现是Android11的问题。但是很神奇,只有部分机型会出现,期间也找了很多出现类似的问题,下面整理了解决方案,方便自己记忆、方便他人。不啰嗦直接上代码。 ContentResolver cr = context.getContentResolver(); Uri uri = CallLog.Calls.CONTENT_URI; String[] projection = new String[]{CallL

seven2729的专栏 4430

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

Android NDK开发Crash错误定位

转载请注明出处:http://blog.youkuaiyun.com/xyang81/article/details/42319789        在Android开发中,程序Crash分三种情况:未捕获的异常、ANR(Application Not Responding)和闪退(NDK引发错误)。其中未捕获的异常根据logcat打印的堆栈信息很容易定位错误。ANR错误也好查,Andr

翊轩LeOn 882

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

【IOS开发】异常断点

解决IOS异常无法定位代码的问题,有时还是得多看看官方文档

会写代码的饭桶 1353

游戏客户端闪退问题分析与画质调整解决方案

在实际游戏开发与玩家体验中,新游戏开服初期遇到客户端闪退是较为常见但影响极差的问题。以近期上线的《异环》为例,部分玩家在开服后遭遇了频繁闪退,尤其是在设备性能或画质设置不匹配的情况下。这类问题通常与游戏引擎的资源加载、图形API兼容性、内存管理或特定硬件驱动有关。本文将深入分析此类闪退问题的常见根因,并提供一套从玩家侧到开发侧均可参考的排查与解决路径,重点讲解如何通过调整画质设置(如改为“流畅”或“性能”模式)来临时规避问题,并探讨更根本的解决方案。 1. 理解客户端闪退的常见技术背景 客户端闪退,尤其是与

weixin_28235889的博客 319

MockGPS位置模拟终极指南:5步实现零失败配置

MockGPS位置模拟应用是Android平台上最强大的位置模拟工具之一,能够帮助用户在多种场景中实现精准的位置设置。然而,许多用户在实际使用过程中常常遇到配置失败、定位不准、应用闪退等问题。本文将通过问题诊断、解决方案、效果验证和进阶优化的四段式框架,为您提供一套完整的MockGPS位置模拟配置方案。 ## 问题诊断:常见配置失败原因分析 在使用MockGPS位置模拟功能时,用户最常遇到的三

gitblog_00240的博客 606

我的电视 my-tv:电视直播安装与遥控器操作指南,10 分钟上手

my-tv 是一款免费的电视直播软件,装在电视或安卓盒子上,打开就能看央视、卫视,不用注册账号、不用导频道源。全文只讲三件事:怎么装、遥控器怎么按、卡住了先查哪里。 ## 选一条最省事的安装路 先下载最新的 APK 安装包,然后看你手边有什么: - **有 U 盘**(最通用):拷进去插电视,用文件管理器点开安装,装完直接启动,没有任何激活、配置步骤。 - **小米电视**:手机装"小米电视

gitblog_00269的博客 2477
上一篇: 解决-Glide使用DiskLruCache缓存Gif图失效
下一篇: 解决-Cannot resolve symbol "GlideApp"
Huang-Lin
博客等级 码龄10年 20粉丝 58原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值