当前位置:编程学习 > wap >>

安卓开启一个新线程就崩溃 大家来看看我错在哪里

我要实现的功能是检索SDcard里的txt文件 我创建了一个子线程来检索文件 当检索完毕时把检索的文件传递给主类 在把文件显示在list上 我 试了好多种方法都不行  用Handler 内部类 只要线程.start() 程序就崩溃
大家给我解决下嘛 我把代码贴上来主线程代码
/*handler = new Handler() {

@Override
public void handleMessage(Message msg) {
// TODO Auto-generated method stub
if(msg.what == 111) {
progress.cancel();
List<Map<String,Object>>listitems = new ArrayList<Map<String,Object>>();
for(int i= 0;i<jiansuowenjian.size();i++) {
Map<String,Object>item = new HashMap<String,Object>();
item.put("icon",R.drawable.file );
item.put("name", jiansuowenjian.get(i).getName());
listitems.add(item);
}
SimpleAdapter adpter = new SimpleAdapter(TexlisttActivity.this,listitems , R.layout.list, new String[] {"icon","name"}, new int[] {R.id.icon,R.id.listitem});
list.setAdapter(adpter);
}
}

};*/
 
子线程代码
class zixiancheng extends Thread {
Message msg = null;
public void run() {
Looper.prepare();
childhandler = new Handler() {

@Override
public void handleMessage(Message msg) {
// TODO Auto-generated method stub
if(msg.what == 222) {
try {
for(int i =0; i<wenjianjia.size();i++) {
jinasuo1(wenjianjia.get(i));
}
jiansuowanbi = true;
msg = handler.obtainMessage();
msg.what = 111;
handler.sendMessage(msg);
} catch (Exception e) {
// TODO: handle exception
}
}
}

};
Looper.loop();
}
}
--------------------编程问答-------------------- 怎么没人帮忙呢  不要吝啬嘛 大家 --------------------编程问答-------------------- 你在子线程不用实例化handler,在主线程外用一个handler接收就行了
class zixiancheng extends Thread {
        Message msg = null;
        public void run() {
           /*
            *在这写找txt文件的方法
            *结束之后,就用handler发一个消息,List
            */
        }
    } --------------------编程问答-------------------- 你看下错误日志嘛 --------------------编程问答--------------------
引用 2 楼 qqxxdyy 的回复:
你在子线程不用实例化handler,在主线程外用一个handler接收就行了
class zixiancheng extends Thread {
        Message msg = null;
        public void run() {
           /*
            *在这写找txt文件的方法
           ……

我第一种方法 就是只在主类里定义了一个handler 然后子线程调用主类的sendmessage 上面的代码是改了好几次的。 无论我线程里做什么 只要 子线程里有循环程序就崩溃 。 --------------------编程问答--------------------
引用 3 楼 yinke22222 的回复:
你看下错误日志嘛

我是在真机上测试的 eclipse 我不会创建SDcard。 --------------------编程问答-------------------- logcat里报的什么错误 ,根据logcat里报的错误来改程序吧 --------------------编程问答-------------------- 你把项目发我邮箱,dengsong292@163.com,我给你改 --------------------编程问答-------------------- 2楼说的对 --------------------编程问答--------------------
引用 7 楼 qqxxdyy 的回复:
你把项目发我邮箱,dengsong292@163.com,我给你改

已经发你邮箱了 请帮忙看下 --------------------编程问答-------------------- 不知道   等高手解答 --------------------编程问答-------------------- 我在eclipse上添加了SDcard 看logcat的什么啊? error 还是什么? --------------------编程问答--------------------
引用 11 楼 qq467101947 的回复:
我在eclipse上添加了SDcard 看logcat的什么啊? error 还是什么?

不用添加SDcard也一样能看logcat,用真机usb调试
就是程序运行的细节内容,将logcat点出来,上面会有崩溃原因提示,不知道网上搜一下,各版本有差异 --------------------编程问答-------------------- 这是logcat

04-04 15:11:48.925: W/KeyCharacterMap(403): No keyboard for id 0
04-04 15:11:48.931: W/KeyCharacterMap(403): Using default keymap: /system/usr/keychars/qwerty.kcm.bin
04-04 15:11:57.762: D/AndroidRuntime(403): Shutting down VM
04-04 15:11:57.762: W/dalvikvm(403): threadid=1: thread exiting with uncaught exception (group=0x40015560)
04-04 15:11:57.831: E/AndroidRuntime(403): FATAL EXCEPTION: main
04-04 15:11:57.831: E/AndroidRuntime(403): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.duocument/com.example.duocument.TexlisttActivity}: java.lang.NullPointerException
04-04 15:11:57.831: E/AndroidRuntime(403):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1647)
04-04 15:11:57.831: E/AndroidRuntime(403):  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1663)
04-04 15:11:57.831: E/AndroidRuntime(403):  at android.app.ActivityThread.access$1500(ActivityThread.java:117)
04-04 15:11:57.831: E/AndroidRuntime(403):  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:931)
04-04 15:11:57.831: E/AndroidRuntime(403):  at android.os.Handler.dispatchMessage(Handler.java:99)
04-04 15:11:57.831: E/AndroidRuntime(403):  at android.os.Looper.loop(Looper.java:123)
04-04 15:11:57.831: E/AndroidRuntime(403):  at android.app.ActivityThread.main(ActivityThread.java:3683)
04-04 15:11:57.831: E/AndroidRuntime(403):  at java.lang.reflect.Method.invokeNative(Native Method)
04-04 15:11:57.831: E/AndroidRuntime(403):  at java.lang.reflect.Method.invoke(Method.java:507)
04-04 15:11:57.831: E/AndroidRuntime(403):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
04-04 15:11:57.831: E/AndroidRuntime(403):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
04-04 15:11:57.831: E/AndroidRuntime(403):  at dalvik.system.NativeStart.main(Native Method)
04-04 15:11:57.831: E/AndroidRuntime(403): Caused by: java.lang.NullPointerException
04-04 15:11:57.831: E/AndroidRuntime(403):  at com.example.duocument.TexlisttActivity.parse(TexlisttActivity.java:133)
04-04 15:11:57.831: E/AndroidRuntime(403):  at com.example.duocument.TexlisttActivity.onCreate(TexlisttActivity.java:86)
04-04 15:11:57.831: E/AndroidRuntime(403):  at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
04-04 15:11:57.831: E/AndroidRuntime(403):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1611)
04-04 15:11:57.831: E/AndroidRuntime(403):  ... 11 more
04-04 15:11:57.831: E/AndroidRuntime(403): FATAL EXCEPTION: main
04-04 15:11:57.831: E/AndroidRuntime(403): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.duocument/com.example.duocument.TexlisttActivity}: java.lang.NullPointerException
04-04 15:11:57.831: E/AndroidRuntime(403):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1647)
04-04 15:11:57.831: E/AndroidRuntime(403):  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1663)
04-04 15:11:57.831: E/AndroidRuntime(403):  at android.app.ActivityThread.access$1500(ActivityThread.java:117)
04-04 15:11:57.831: E/AndroidRuntime(403):  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:931)
04-04 15:11:57.831: E/AndroidRuntime(403):  at android.os.Handler.dispatchMessage(Handler.java:99)
04-04 15:11:57.831: E/AndroidRuntime(403):  at android.os.Looper.loop(Looper.java:123)
04-04 15:11:57.831: E/AndroidRuntime(403):  at android.app.ActivityThread.main(ActivityThread.java:3683)
04-04 15:11:57.831: E/AndroidRuntime(403):  at java.lang.reflect.Method.invokeNative(Native Method)
04-04 15:11:57.831: E/AndroidRuntime(403):  at java.lang.reflect.Method.invoke(Method.java:507)
04-04 15:11:57.831: E/AndroidRuntime(403):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
04-04 15:11:57.831: E/AndroidRuntime(403):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
04-04 15:11:57.831: E/AndroidRuntime(403):  at dalvik.system.NativeStart.main(Native Method)
04-04 15:11:57.831: E/AndroidRuntime(403): Caused by: java.lang.NullPointerException
04-04 15:11:57.831: E/AndroidRuntime(403):  at com.example.duocument.TexlisttActivity.parse(TexlisttActivity.java:133)
04-04 15:11:57.831: E/AndroidRuntime(403):  at com.example.duocument.TexlisttActivity.onCreate(TexlisttActivity.java:86)
04-04 15:11:57.831: E/AndroidRuntime(403):  at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
04-04 15:11:57.831: E/AndroidRuntime(403):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1611)
04-04 15:11:57.831: E/AndroidRuntime(403):  ... 11 more
04-04 15:12:03.722: I/Process(403): Sending signal. PID: 403 SIG: 9
04-04 15:12:37.301: D/dalvikvm(414): GC_EXTERNAL_ALLOC freed 57K, 53% free 2555K/5379K, external 1653K/2137K, paused 88ms
04-04 15:12:37.563: D/dalvikvm(414): GC_EXTERNAL_ALLOC freed 1K, 53% free 2554K/5379K, external 3081K/3848K, paused 89ms
04-04 15:12:37.882: D/dalvikvm(414): GC_EXTERNAL_ALLOC freed <1K, 53% free 2556K/5379K, external 3260K/4688K, paused 79ms
04-04 15:12:38.201: D/dalvikvm(414): GC_EXTERNAL_ALLOC freed <1K, 53% free 2556K/5379K, external 4805K/6001K, paused 90ms
04-04 15:12:38.513: D/dalvikvm(414): GC_EXTERNAL_ALLOC freed <1K, 53% free 2558K/5379K, external 4999K/6544K, paused 76ms
04-04 15:12:38.991: D/dalvikvm(414): GC_EXTERNAL_ALLOC freed <1K, 53% free 2558K/5379K, external 6562K/8194K, paused 71ms
04-04 15:12:58.264: D/dalvikvm(414): GC_EXTERNAL_ALLOC freed 18K, 52% free 2607K/5379K, external 7356K/8438K, paused 148ms
04-04 15:13:11.501: D/AndroidRuntime(414): Shutting down VM
04-04 15:13:11.501: W/dalvikvm(414): threadid=1: thread exiting with uncaught exception (group=0x40015560)
04-04 15:13:11.554: E/AndroidRuntime(414): FATAL EXCEPTION: main
04-04 15:13:11.554: E/AndroidRuntime(414): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.duocument/com.example.duocument.TexlisttActivity}: java.lang.NullPointerException
04-04 15:13:11.554: E/AndroidRuntime(414):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1647)
04-04 15:13:11.554: E/AndroidRuntime(414):  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1663)
04-04 15:13:11.554: E/AndroidRuntime(414):  at android.app.ActivityThread.access$1500(ActivityThread.java:117)
04-04 15:13:11.554: E/AndroidRuntime(414):  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:931)
04-04 15:13:11.554: E/AndroidRuntime(414):  at android.os.Handler.dispatchMessage(Handler.java:99)
04-04 15:13:11.554: E/AndroidRuntime(414):  at android.os.Looper.loop(Looper.java:123)
04-04 15:13:11.554: E/AndroidRuntime(414):  at android.app.ActivityThread.main(ActivityThread.java:3683)
04-04 15:13:11.554: E/AndroidRuntime(414):  at java.lang.reflect.Method.invokeNative(Native Method)
04-04 15:13:11.554: E/AndroidRuntime(414):  at java.lang.reflect.Method.invoke(Method.java:507)
04-04 15:13:11.554: E/AndroidRuntime(414):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
04-04 15:13:11.554: E/AndroidRuntime(414):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
04-04 15:13:11.554: E/AndroidRuntime(414):  at dalvik.system.NativeStart.main(Native Method)
04-04 15:13:11.554: E/AndroidRuntime(414): Caused by: java.lang.NullPointerException
04-04 15:13:11.554: E/AndroidRuntime(414):  at com.example.duocument.TexlisttActivity.parse(TexlisttActivity.java:133)
04-04 15:13:11.554: E/AndroidRuntime(414):  at com.example.duocument.TexlisttActivity.onCreate(TexlisttActivity.java:86)
04-04 15:13:11.554: E/AndroidRuntime(414):  at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
04-04 15:13:11.554: E/AndroidRuntime(414):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1611)
04-04 15:13:11.554: E/AndroidRuntime(414):  ... 11 more
04-04 15:18:11.732: I/Process(414): Sending signal. PID: 414 SIG: 9
--------------------编程问答-------------------- 日志怎么没看到报错的部分
补充:移动开发 ,  Android
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,