赞
踩
https://www.zhihu.com/question/32024327
用AS,App崩溃(闪退)时是不显示log的,或者一闪而过,而eclipse就可以显示,这样对于查找错误带来很大的困难。问了几个用as的朋友也遇到一样…
关注者
81
被浏览
40,653
23 个回答
吾辈心中亦有惑
说的对,我稍微补充一下
注意右上角,选择 Show only selected application 的话,Log就只会打出来你在上面选择的那个进程
也就是上图中的com.meizu.safe
想看崩溃Log的话,可以选择No Filters,Log等级选成Warn,减少Log刷屏速度
然后就可以看到你期待的Crash Log了。
阿里内推饿了么B&C端,Java/测试/前端/客户端大量招人
这个问题我遇到过,真机上常见,我一般都是切换到模拟器去。目前还不知道解决办法
这个我经常遇到,确实很烦,崩溃后堆栈堆栈信息会自动清空,这时候我会打开eclipse,重现崩溃,查看logcat上崩溃信息,幸好机子配置不错,不然开个AS又开Eclipse会卡出翔
发现一个不用开eclipse也可以查看到崩溃信息的方法:从菜单的Tools打开Android Device Monitor,打开一看就是eclipse的DDMS,换个名字而已。
看桌面截图,左边是Android Device Monitor,右边是AS的logcat,这样可以同时开去查看信息,当应用发生崩溃的时候右边的logcat信息有时候是会给清除掉的,而Android Device Monitor的崩溃信息依然在的,这样就不用再打开eclipse了,对内存不足的童鞋很有用。不过需要注意的是,开了Android Device Monitor是不能打断点debug的,
广告
资料包含:2019年-2020年高顿ACCA全科目考纲解析白皮书电子版、ACCA CPA学霸笔记分享、CPA历年真题以及考试大纲、2019年12月考纲解析电子版、UOL完全版攻略。查看详情
知乎用户
不显示可能是因为程序被杀死了,没有了连接,所以Log都消失了。一般程序崩溃的时候都有一个提示信息,不要立即点击确定按钮,可以在查看信息之后在点击确定。这个时候的Log信息还是存在的。其实也可以写设置Application的UncaughtException实现对崩溃信息的简单处理,这样查看的话就相对麻烦,可以在发布之后使用。
IT、android
刚刚又出现这种情况,同事告诉了我一个方法,如图:选择 DEAD 即可看到 崩溃时的 log
知乎用户
因为你选择了log选择看调试应用的log,你选择查看所有就有了!不管你软件退出没有,因为系统log太多避免无用信息你过滤关键字就好,直接搜索你软件的包名就出来了
看到一些评论说info级别的也看不到,提供一种思路,华为、魅族对Log有限制,魅族需要设置“高级日志输出”为全部允许,而华为则需要在拨号界面输入 *#*#2846579#*#* 打开工程菜单,再将“LOG设置”中AP日志打开
知乎用户
我也遇到过,估计是Android Studio本身的bug,目前不知道解决方案。
最高赞答案在模拟器上应该是可以的,但在真机测试环境中仍然可能无法报出崩溃异常,解决方案是采用CrashHanlder捕捉,并在获取到异常后进行打印或存储,此时不要设置立刻重启app,如果是直接打印的方式,会导致log信息重置,存储到文件的方式则可能存储失败,建议捕捉到异常后不要立刻重启,在测试环境下完全可以让崩溃定格在当前页面
- @Override
- public void uncaughtException(Thread thread, Throwable ex) {
- if (!handleException(ex) && mDefaultHandler != null) {
- //如果用户没有处理则让系统默认的异常处理器来处理
- mDefaultHandler.uncaughtException(thread, ex);
- } else {
- try {
- Thread.sleep(6000);
- } catch (InterruptedException e) {
- Log.e(TAG, "error : ", e);
- }
- //退出程序并重启,可选
- startApp();
- }
- }
-
- private boolean handleException(Throwable ex) {
- if (ex == null) {
- return false;
- }
- //收集设备参数信息
- collectDeviceInfo(mContext);
- //使用Toast来显示异常信息
- new Thread() {
- @Override
- public void run() {
- Looper.prepare();
- Toast.makeText(mContext, "很抱歉,程序出现异常,即将退出.", Toast.LENGTH_SHORT).show();
- Looper.loop();
- }
- }.start();
- //保存日志文件
- saveCatchInfo2File(ex);
- return true;
- }
-
- /**
- * 保存错误信息到文件中并打印错误 日志
- */
- private String saveCatchInfo2File(Throwable ex) {
- Log.e(TAG, "Message: "+ex.getMessage()+"\n"+"Cause: "+ex.getCause());
- StringBuffer sb = new StringBuffer();
- for (Map.Entry<String, String> entry : deviceInfos.entrySet()) {
- String key = entry.getKey();
- String value = entry.getValue();
- sb.append(key + "=" + value + "\n");
- }
- Writer writer = new StringWriter();
- PrintWriter printWriter = new PrintWriter(writer);
- ex.printStackTrace(printWriter);
- Throwable cause = ex.getCause();
- while (cause != null) {
- cause.printStackTrace(printWriter);
- cause = cause.getCause();
- }
- printWriter.close();
- String result = writer.toString();
- sb.append(result);
- try {
- String fileName = "崩溃日志" + ".txt";
- if (Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)) {
- if(FileUtils.createFileByDeleteOldFile(CrashPath)){
- LogUtils.e("崩溃日志生成成功!");
- File file = FileUtils.getFileByPath(CrashPath);
- FileOutputStream fos = new FileOutputStream(file);
- fos.write(sb.toString().getBytes());
- fos.close();
- //将异常信息发送到服务器,代码缺失
- }
- }
- return fileName;
- } catch (Exception e) {
- Log.e(TAG, "an error occured while writing file...", e);
- }
- return null;
- }

程序员
打开命令行,adb logcat >>xxx.log
然后在log里搜 。thread exit
Android -haosou-浏览器-bjtime
在log窗口的右上角有个 上Show only select application. log(凭借印象写的,具体名字肯能不是)点下 换成 all ,就可以看到了。这是ue设计问题。
家有豆柴
crash之后在进程里选 http://xxx.xxx.xxx(DEAD), 会出现之前的crash信息。
广告
做设计还在用默认字体?黑体宋体太普通,字由免费送你免版权字体,快来下载体验吧查看详情
Where the Trail Ends
我今天就遇到过!
魅族手机莫名奇妙的崩溃,并且没有日志!
主要是代码在其他手机都好好地啊!
扎铁了!
努力做自己的游戏
AS 如果运行app崩溃的话,不要立刻点掉手机上的那个提示:“XX已停止运行”,不要点确定。这个时候你在AS上可以查看到异常或者bug信息。或者,你可以选择[DEAD]的那一项,来查看异常。
知乎用户
是你们设置问题,刚才崩溃的app,日志在这里选择就可以了
这道题我不会做
我是加了一个全局的异常捕获,发布版的话,崩溃睡上3秒,弹出提示,重启App。调试版的话,崩溃睡上8秒,这8秒的时间足够把崩溃信息给copy下来了
android
哎 我这直接崩溃 报的错都莫名其妙 大家说的找到了 log system 都没有打印出来
知乎用户
知乎用户
这个问题确实很烦。。。不过我的app集成了LeanCloud的bug反馈,每次我都去那里去看崩溃日志。。。当然要保证网络良好,同时不要老崩溃,不然就太麻烦了
同遇到。
把手机拔掉,重新插入后好了。
风一样的男子
.....我也碰到了,好烦啊
========================
坑爹,把360手机助手卸载了log就不会自动清除了
===================
又出现这个情况了,是在debug后按停止debug按钮后出现的,后面发现是Android标签里面的logcat不行,Debug标签下的logcat可以。猜测应该是两个竞争的原因。
广告
践行绿色智能制造,橙色云携专业团队免费支持绿色转型咨询查看详情
安卓软件开发工程师
看一下Application中是否存在android.os.Process.killProcess(android.os.Process.myPid());类似杀死进程的代码。
有点完美主义的选择困难症患者。
把觉得可能崩溃的地方用try catch包裹一下就不会Log闪退了。
赞
踩
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。