首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > Android >

为什么空指针异常啊

2012-06-15 
为什么空指针错误啊???问题:我用debug测试的时候categoryArray[i]明明有值啊,可是为什么就是传不到list里

为什么空指针错误啊???
问题:我用debug测试的时候categoryArray[i]明明有值啊,可是为什么就是传不到list里面呢?

log:

Java code
06-14 09:33:00.830: E/AndroidRuntime(736): FATAL EXCEPTION: main06-14 09:33:00.830: E/AndroidRuntime(736): java.lang.RuntimeException: Unable to start activity ComponentInfo{napo.news.activity/napo.news.activity.WenpingNewsActivity}: java.lang.NullPointerException06-14 09:33:00.830: E/AndroidRuntime(736):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2663)06-14 09:33:00.830: E/AndroidRuntime(736):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2679)06-14 09:33:00.830: E/AndroidRuntime(736):     at android.app.ActivityThread.access$2300(ActivityThread.java:125)06-14 09:33:00.830: E/AndroidRuntime(736):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2033)06-14 09:33:00.830: E/AndroidRuntime(736):     at android.os.Handler.dispatchMessage(Handler.java:99)06-14 09:33:00.830: E/AndroidRuntime(736):     at android.os.Looper.loop(Looper.java:123)06-14 09:33:00.830: E/AndroidRuntime(736):     at android.app.ActivityThread.main(ActivityThread.java:4627)06-14 09:33:00.830: E/AndroidRuntime(736):     at java.lang.reflect.Method.invokeNative(Native Method)06-14 09:33:00.830: E/AndroidRuntime(736):     at java.lang.reflect.Method.invoke(Method.java:521)06-14 09:33:00.830: E/AndroidRuntime(736):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)06-14 09:33:00.830: E/AndroidRuntime(736):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)06-14 09:33:00.830: E/AndroidRuntime(736):     at dalvik.system.NativeStart.main(Native Method)06-14 09:33:00.830: E/AndroidRuntime(736): Caused by: java.lang.NullPointerException06-14 09:33:00.830: E/AndroidRuntime(736):     at napo.news.activity.WenpingNewsActivity.onCreate(WenpingNewsActivity.java:55)06-14 09:33:00.830: E/AndroidRuntime(736):     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)06-14 09:33:00.830: E/AndroidRuntime(736):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2627)06-14 09:33:00.830: E/AndroidRuntime(736):     ... 11 more


java代码:
Java code
package napo.news.activity;import java.util.ArrayList;import java.util.HashMap;import java.util.List;import napo.news.util.DensityUtil;import android.app.Activity;import android.os.Bundle;import android.view.Gravity;import android.view.ViewGroup.LayoutParams;import android.widget.GridView;import android.widget.LinearLayout;import android.widget.SimpleAdapter;public class WenpingNewsActivity extends Activity {    private final int COLUMNWIDTHPX = 55;    private int mColumnWidthDip;    /** Called when the activity is first created. */    @Override    public void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.main);        mColumnWidthDip = DensityUtil.px2dip(this, COLUMNWIDTHPX);        String[] categoryArray = getResources().getStringArray(                R.array.categories);        List<HashMap<String, String>> categories = new ArrayList<HashMap<String, String>>();        for (int i=0; i < categoryArray.length; i++) {            HashMap<String, String> hashMap = new HashMap<String, String>();            hashMap.put("category_title", categoryArray[i]);            categories.add(hashMap);        }                SimpleAdapter categoryAdapter = new SimpleAdapter(this, categories, R.layout.category_title, new String[]{"category_title"}, new int[] {R.id.category_title});        GridView category = new GridView(this);        category.setColumnWidth(mColumnWidthDip);        category.setNumColumns(GridView.AUTO_FIT);        category.setGravity(Gravity.CENTER);                int width = mColumnWidthDip * categories.size();        LayoutParams params = new LayoutParams(width,                LayoutParams.WRAP_CONTENT);        category.setLayoutParams(params);        category.setAdapter(categoryAdapter);                LinearLayout categoryList = (LinearLayout)findViewById(R.id.catgory_layout);        categoryList.addView(category);    }} 



[解决办法]
你打断点跟踪一下啊。
[解决办法]
你定义 private int mColumnWidthDip;直接定义成 private int mColumnWidthDip=0;不就行了吗



[解决办法]
Java code
06-14 09:33:00.830: E/AndroidRuntime(736): Caused by: java.lang.NullPointerException06-14 09:33:00.830: E/AndroidRuntime(736):     at napo.news.activity.WenpingNewsActivity.onCreate(WenpingNewsActivity.java:55)
[解决办法]
探讨

Java code

06-14 09:33:00.830: E/AndroidRuntime(736): Caused by: java.lang.NullPointerException
06-14 09:33:00.830: E/AndroidRuntime(736): at napo.news.activity.WenpingNewsActivity.onCreate(Wenp……

[解决办法]
空指针异常都搞不定的 肯定是初学者
[解决办法]
3楼,4楼回答是正解。
5楼要耐心,初学者也是变成老鸟的
[解决办法]
建议楼主,发错误提示及源码时,要发最新的错误提示及源码。

你目前发的出错是55行,代码却没有55行。
[解决办法]
打印下String数组,看是否有值的
[解决办法]
你进行单步调试吧,在提示的位置打上断点,并且利用eclipse自带的variables查看参数的值,或者对某个参数右键,然后选择watch就能进行观察,一步一步的你就会发现为什么,或者到哪一步的时候出现了错误,或者和你原来想的不一样了。编译器有时候和我们的大脑思考的运行肯定不一样的!加油吧,一起学习!
[解决办法]
这是不可能的
探讨

我用断点测试到这一行代码出问题了:category.setAdapter(categoryAdapter);
categoryAdapter有值,但category里却没有值,为什么啊?
引用:

savedInstanceState 是 null值,这是什么原因啊?

热点排行