安卓应用闪退,求思路

时间:2021-01-02 16:45:24
开发了一个安卓版本的程序,在手机端运行的时候,很容易闪退,但是闪退出现并没有规律,请教这种情况,应该从哪些方面入手去查找问题?(该程序需要频繁和服务端交互数据)

17 个解决方案

#1


闪退看log打印信息啊

#2


但是因为没有规律,而且应用蛮复杂的,我想先定位,哪些程序处理上,容易引起闪退?

#3


闪退肯定是有地方报错了,你看一下logcat日志,把报出来的错误一个个解决掉。
要不然埋头瞎定位,也找不到原因。

#4


还是先看错误信息吧 才能找到原因

#5


肯定是空指针啦,看下LOG就好了,加判断

#6


一般情况下是跟服务器交互时出现错误,然后就会出现闪退情况

#7


	@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);

Thread.setDefaultUncaughtExceptionHandler(new UncaughtExceptionHandler() {

@Override
public void uncaughtException(Thread thread, Throwable ex) {
Toast.makeText(getApplicationContext(), "Crash: " + ex.getMessage(), Toast.LENGTH_LONG).show();;
Log.e("@", "Crash dump", ex);
}
});

setContentView(R.layout.activity_main);
...
}

#8


多加点log,一般是空指针造成的.

#9


得看日志,7楼的方法看起来挺强大,建议试试

#10


有BUG才会这样 安卓应用闪退,求思路

#11


谢谢各位,还有没有有经验的师傅,再多提供些思路?

#12


用7楼的方法。
如果不太容易看logcat,就再拦截到异常后存到sharedpreference,再打开app的时候显示出来;或者直接存到sd卡上。

#13


7楼方法不错。我自己写的一个小程序,用来抓取logcat,将log写到sdcard,后台运行,可以随时打开或关闭。需要可以去拿
http://download.csdn.net/detail/echojiangyq/7350395

#14


引用 7 楼 youngc527 的回复:
	@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);

Thread.setDefaultUncaughtExceptionHandler(new UncaughtExceptionHandler() {

@Override
public void uncaughtException(Thread thread, Throwable ex) {
Toast.makeText(getApplicationContext(), "Crash: " + ex.getMessage(), Toast.LENGTH_LONG).show();;
Log.e("@", "Crash dump", ex);
}
});

setContentView(R.layout.activity_main);
...
}
安卓应用闪退,求思路

#15


还有其他建议否?晚上准备加分,并且结贴

#16


APP的图片较多,有时候网络比较慢,可能会超时,这些问题是否会引起闪退?

#17


引用 7 楼 youngc527 的回复:
	@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);

Thread.setDefaultUncaughtExceptionHandler(new UncaughtExceptionHandler() {

@Override
public void uncaughtException(Thread thread, Throwable ex) {
Toast.makeText(getApplicationContext(), "Crash: " + ex.getMessage(), Toast.LENGTH_LONG).show();;
Log.e("@", "Crash dump", ex);
}
});

setContentView(R.layout.activity_main);
...
}


android中自定义抓异常就是弄的,你还可以用第三方包比如darks.log.Logger这种...

#1


闪退看log打印信息啊

#2


但是因为没有规律,而且应用蛮复杂的,我想先定位,哪些程序处理上,容易引起闪退?

#3


闪退肯定是有地方报错了,你看一下logcat日志,把报出来的错误一个个解决掉。
要不然埋头瞎定位,也找不到原因。

#4


还是先看错误信息吧 才能找到原因

#5


肯定是空指针啦,看下LOG就好了,加判断

#6


一般情况下是跟服务器交互时出现错误,然后就会出现闪退情况

#7


	@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);

Thread.setDefaultUncaughtExceptionHandler(new UncaughtExceptionHandler() {

@Override
public void uncaughtException(Thread thread, Throwable ex) {
Toast.makeText(getApplicationContext(), "Crash: " + ex.getMessage(), Toast.LENGTH_LONG).show();;
Log.e("@", "Crash dump", ex);
}
});

setContentView(R.layout.activity_main);
...
}

#8


多加点log,一般是空指针造成的.

#9


得看日志,7楼的方法看起来挺强大,建议试试

#10


有BUG才会这样 安卓应用闪退,求思路

#11


谢谢各位,还有没有有经验的师傅,再多提供些思路?

#12


用7楼的方法。
如果不太容易看logcat,就再拦截到异常后存到sharedpreference,再打开app的时候显示出来;或者直接存到sd卡上。

#13


7楼方法不错。我自己写的一个小程序,用来抓取logcat,将log写到sdcard,后台运行,可以随时打开或关闭。需要可以去拿
http://download.csdn.net/detail/echojiangyq/7350395

#14


引用 7 楼 youngc527 的回复:
	@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);

Thread.setDefaultUncaughtExceptionHandler(new UncaughtExceptionHandler() {

@Override
public void uncaughtException(Thread thread, Throwable ex) {
Toast.makeText(getApplicationContext(), "Crash: " + ex.getMessage(), Toast.LENGTH_LONG).show();;
Log.e("@", "Crash dump", ex);
}
});

setContentView(R.layout.activity_main);
...
}
安卓应用闪退,求思路

#15


还有其他建议否?晚上准备加分,并且结贴

#16


APP的图片较多,有时候网络比较慢,可能会超时,这些问题是否会引起闪退?

#17


引用 7 楼 youngc527 的回复:
	@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);

Thread.setDefaultUncaughtExceptionHandler(new UncaughtExceptionHandler() {

@Override
public void uncaughtException(Thread thread, Throwable ex) {
Toast.makeText(getApplicationContext(), "Crash: " + ex.getMessage(), Toast.LENGTH_LONG).show();;
Log.e("@", "Crash dump", ex);
}
});

setContentView(R.layout.activity_main);
...
}


android中自定义抓异常就是弄的,你还可以用第三方包比如darks.log.Logger这种...