当前位置: 代码迷 >> Android >> android开发Caused by: java.lang.NullPointerException解决办法
  详细解决方案

android开发Caused by: java.lang.NullPointerException解决办法

热度:12   发布时间:2016-05-01 15:07:55.0
android开发Caused by: java.lang.NullPointerException
08-20 17:19:32.790: D/dalvikvm(938): GC_EXTERNAL_ALLOC freed 52K, 51% free 2686K/5379K, external 0K/0K, paused 397ms
08-20 17:19:33.200: D/AndroidRuntime(938): Shutting down VM
08-20 17:19:33.200: W/dalvikvm(938): threadid=1: thread exiting with uncaught exception (group=0x40020560)
08-20 17:19:33.210: E/AndroidRuntime(938): FATAL EXCEPTION: main
08-20 17:19:33.210: E/AndroidRuntime(938): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.suishoukan/com.example.suishoukan.MainActivity}: java.lang.NullPointerException
08-20 17:19:33.210: E/AndroidRuntime(938): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1834)
08-20 17:19:33.210: E/AndroidRuntime(938): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1850)
08-20 17:19:33.210: E/AndroidRuntime(938): at android.app.ActivityThread.access$1500(ActivityThread.java:125)
08-20 17:19:33.210: E/AndroidRuntime(938): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:941)
08-20 17:19:33.210: E/AndroidRuntime(938): at android.os.Handler.dispatchMessage(Handler.java:99)
08-20 17:19:33.210: E/AndroidRuntime(938): at android.os.Looper.loop(Looper.java:130)
08-20 17:19:33.210: E/AndroidRuntime(938): at android.app.ActivityThread.main(ActivityThread.java:3962)
08-20 17:19:33.210: E/AndroidRuntime(938): at java.lang.reflect.Method.invokeNative(Native Method)
08-20 17:19:33.210: E/AndroidRuntime(938): at java.lang.reflect.Method.invoke(Method.java:507)
08-20 17:19:33.210: E/AndroidRuntime(938): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:864)
08-20 17:19:33.210: E/AndroidRuntime(938): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:622)
08-20 17:19:33.210: E/AndroidRuntime(938): at dalvik.system.NativeStart.main(Native Method)
08-20 17:19:33.210: E/AndroidRuntime(938): Caused by: java.lang.NullPointerException
08-20 17:19:33.210: E/AndroidRuntime(938): at com.example.suishoukan.MainActivity.show(MainActivity.java:85)
08-20 17:19:33.210: E/AndroidRuntime(938): at com.example.suishoukan.MainActivity.onCreate(MainActivity.java:54)
08-20 17:19:33.210: E/AndroidRuntime(938): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
08-20 17:19:33.210: E/AndroidRuntime(938): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1788)
08-20 17:19:33.210: E/AndroidRuntime(938): ... 11 more
Java code
package com.example.suishoukan;import java.util.ArrayList;import java.util.HashMap;import java.util.List;import com.example.domain.Film;import com.example.service.FilmService;import com.example.test.FilmServiceTest;import android.app.TabActivity;import android.os.Bundle;import android.util.Log;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.ListView;import android.widget.SimpleAdapter;import android.widget.TabHost;import android.widget.TabHost.OnTabChangeListener;public class MainActivity extends TabActivity{    //声明TabHost对象    TabHost mTabHost;    Button button1,button2,button3,button4;    FilmService filmService;    List<Film> films;    ListView listView;    public void onCreate(Bundle savedInstanceState)    {        super.onCreate(savedInstanceState);        setContentView(R.layout.main);        //取得TabHost对象        mTabHost = getTabHost();                /* 为TabHost添加标签 */        //新建一个newTabSpec(newTabSpec)        //设置其标签和图标(setIndicator)        //设置内容(setContent)        mTabHost.addTab(mTabHost.newTabSpec("tab_test1")                .setIndicator("榜单")                .setContent(R.id.textview1));        mTabHost.addTab(mTabHost.newTabSpec("tab_test2")                .setIndicator("节目表")                .setContent(R.id.textview2));        mTabHost.addTab(mTabHost.newTabSpec("tab_test3")                .setIndicator("收藏")                .setContent(R.id.textview3));        //设置当前显示哪一个标签        mTabHost.setCurrentTab(0);        filmService = new FilmService(this);        films = filmService.getScrollData(0,10);        listView = (ListView) this.findViewById(R.id.listView) ;        button1 = (Button) this.findViewById(R.id.button1);        button2 = (Button) this.findViewById(R.id.button2);        button3 = (Button) this.findViewById(R.id.button3);        button4 = (Button) this.findViewById(R.id.button4);        OnClickListener o = new OnClickListener() {            @Override            public void onClick(View v) {                // TODO Auto-generated method stub                if(button1.getId()==v.getId()){                    films = filmService.getScrollData(0,10);                }                else if(button2.getId()==v.getId()){                    films = filmService.getScrollData(10,10);                }                else if(button3.getId()==v.getId()){                    films = filmService.getScrollData(20,10);                }                else{                    films = filmService.getScrollData(30,10);                }            }        };        button1.setOnClickListener(o);        button2.setOnClickListener(o);        button3.setOnClickListener(o);        button4.setOnClickListener(o);        show();    }    private void show() {        // TODO Auto-generated method stub        List<HashMap<String, Object>> data = new ArrayList<HashMap<String,Object>>();        for(Film film : films){            HashMap<String,Object> item = new HashMap<String,Object>();            item.put("title", film.getTitle());            item.put("score", film.getScore());            data.add(item);        }        SimpleAdapter adapter = new SimpleAdapter(this, data, R.layout.item,                new String[]{"title","score"}, new int[]{R.id.title,R.id.score});        listView.setAdapter(adapter);    }}
  相关解决方案