W/dalvikvm: threadid=1: thread exiting with uncaught exception (group=0x419b4c50)
2016-11-18 15:47
477 查看
今天编程时候遇到一个问题:
W/dalvikvm: threadid=1: thread exiting with uncaught exception (group=0x419b4c50)
。。。。
log完全没有,,,这个时候有心杀贼,无力回天啊,,,,什么报错信息都没有。
百度各种问题解决方案,最终有一篇文章:http://blog.csdn.net/liqiangeastsun/article/details/43986605 讲了一个解决问题的方案:
以下是原文:
Android错误threadid=1: thread exiting with uncaught exception (group=0x416298c8)
在项目开发中测试时崩溃,错误如上
该错误的意思是线程中存在没有捕获到的异常。一般情况下捕获异常使用
2
3
4
5
6
1
2
3
4
5
6
但是在线程池中,线程池在执行任务时捕获了所有异常,这样一来线程中所有的异常都无法捕获到抛出的异常。
即 try catch 捕获不到异常了。
Java中有一个接口,UncaughtExceptionHandler 描述如下:
2
1
2
Thread类中的一个方法
2
3
1
2
3
我们需要实现这样一个接口
代码如下
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
现在还无法捕获到线程中的异常,还需要调用一个方法
1
在OnCreate方法中调用一下即可
2
3
4
5
1
2
3
4
5
完整代码如下
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
这样再次运行就会捕获到线程中的异常,不会导致项目直接崩溃
最终可以打印出log信息了,报错为:(Android5.0以上没这个问题,5,0以下有问题的)
java.lang.ClassCastException: android.view.ViewGroup$LayoutParams cannot be cast to android.widget.AbsListView$LayoutParams
问题已经很明显了,类强转时候报的问题:
解决方案:
改为:
这个问题到不是很关键,主要问题是找到了方法,当log不能显示异常信息时候,,,,可以帮我们打印出log信息,然后分析问题,解决问题。。。。
W/dalvikvm: threadid=1: thread exiting with uncaught exception (group=0x419b4c50)
。。。。
log完全没有,,,这个时候有心杀贼,无力回天啊,,,,什么报错信息都没有。
百度各种问题解决方案,最终有一篇文章:http://blog.csdn.net/liqiangeastsun/article/details/43986605 讲了一个解决问题的方案:
以下是原文:
Android错误threadid=1: thread exiting with uncaught exception (group=0x416298c8)
在项目开发中测试时崩溃,错误如上
该错误的意思是线程中存在没有捕获到的异常。一般情况下捕获异常使用
try { } catch (Exception e) { }1
2
3
4
5
6
1
2
3
4
5
6
但是在线程池中,线程池在执行任务时捕获了所有异常,这样一来线程中所有的异常都无法捕获到抛出的异常。
即 try catch 捕获不到异常了。
Java中有一个接口,UncaughtExceptionHandler 描述如下:
static interface Thread.UncaughtExceptionHandler // 当 Thread 因未捕获的异常而突然终止时,调用处理程序的接口。1
2
1
2
Thread类中的一个方法
static void setDefaultUncaughtExceptionHandler(Thread.UncaughtExceptionHandler eh) //设置当线程由于未捕获到异常而突然终止,并且没有为该线程定义其他处理程序时所调用的默认处理程序。1
2
3
1
2
3
我们需要实现这样一个接口
UncaughtExceptionHandler,然后在程序的主线程中设置处理程序。
代码如下
import java.lang.Thread.UncaughtExceptionHandler; //implements UncaughtExceptionHandler public class Other extends Activity implements UncaughtExceptionHandler { //必须实现接口uncaughtException @Override public void uncaughtException(Thread arg0, Throwable arg1) { //在此处理异常, arg1即为捕获到的异常 Log.i("AAA", "uncaughtException " + arg1); } }1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
现在还无法捕获到线程中的异常,还需要调用一个方法
Thread.setDefaultUncaughtExceptionHandler(this);1
1
在OnCreate方法中调用一下即可
@Override protected void onCreate(Bundle savedInstanceState) { //在OnCreate方法中调用下面方法,然后再使用线程,就能在uncaughtException方法中捕获到异常 Thread.setDefaultUncaughtExceptionHandler(this); }1
2
3
4
5
1
2
3
4
5
完整代码如下
//导入包 import java.lang.Thread.UncaughtExceptionHandler; //implements UncaughtExceptionHandler public class Other extends Activity implements UncaughtExceptionHandler { @Override protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); setContentView(R.layout.th); //在此调用下面方法,才能捕获到线程中的异常 Thread.setDefaultUncaughtExceptionHandler(this); //获取创建的 Button btn1 = (Button) findViewById(R.id.btn); //给btn1添加一个点击监听事件 btn1.setOnClickListener(new OnClickListener() { @Override public void onClick(View arg0) { //调用我自己的方法 Init(); } }); } public void Init() { //开启线程 new Handler(Looper.getMainLooper()).post(new Runnable() { @Override public void run() { //此处的 try catch 是无法捕获到异常的 try { ////////////////////////////////////////// //需要在线程中调用的方法purchase.init(context, iapListener) purchase.init(context, iapListener); ////////////////////////////////////////// } catch (Exception e) { // TODO: handle exception Log.i("AAA", "INIG " + e); e.printStackTrace(); } } }); } //必须实现接口uncaughtException @Override public void uncaughtException(Thread arg0, Throwable arg1) { //在此处理异常, arg1即为捕获到的异常 Log.i("AAA", "uncaughtException " + arg1); }1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
这样再次运行就会捕获到线程中的异常,不会导致项目直接崩溃
最终可以打印出log信息了,报错为:(Android5.0以上没这个问题,5,0以下有问题的)
java.lang.ClassCastException: android.view.ViewGroup$LayoutParams cannot be cast to android.widget.AbsListView$LayoutParams
问题已经很明显了,类强转时候报的问题:
解决方案:
android.view.ViewGroup.LayoutParams
改为:
android.widget.AbsListView.LayoutParams
这个问题到不是很关键,主要问题是找到了方法,当log不能显示异常信息时候,,,,可以帮我们打印出log信息,然后分析问题,解决问题。。。。
相关文章推荐
- 问题的解决: dalvikvm(12291): threadid=1: thread exiting with uncaught exception (group=0x417d6930)
- W/dalvikvm: threadid=1: thread exiting with uncaught exception (group=0x41cb7c68)
- Android错误threadid=1: thread exiting with uncaught exception (group=0x416298c8)
- threadid=1: thread exiting with uncaught exception (group=0x40db8930)
- android问题:11-24 01:57:06.230: W/dalvikvm(1325): threadid=1: thread exiting with uncaught exception (
- threadid=1: thread exiting with uncaught exception (group=0x40f11438)
- 开发中关于threadid=1: thread exiting with uncaught exception (group=0x40...)的错误
- threadid=1: thread exiting with uncaught exception (group=0x416f2e00)
- threadid=11: thread exiting with uncaught exception (group=0x41898c38)
- 记录,烦了我半天的问题thread exiting with uncaught exception (group=0x4160bc50)
- threadid=1: thread exiting with uncaught exception (group=0x416298c8)
- 解决 threadid=1: thread exiting with uncaught exception (未测试)
- Android中报错:threadid=1: thread exiting with uncaught exception
- threadid=1: thread exiting with uncaught.exception ......解决方法
- threadid=1: thread exiting with uncaught exception (group=0x40015578)
- threadid=1: thread exiting with uncaught exception (group=0x417cce00)问题
- threadid=1: thread exiting with uncaught exception (group=0xb2a86d70)
- thread exiting with uncaught exception
- threadid=1: thread exiting with uncaught exception
- android 错误: thread exiting with uncaught exception