为什么空指针错误啊???
问题:我用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 morejava代码:
- 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)
[解决办法]
[解决办法]
空指针异常都搞不定的 肯定是初学者
[解决办法]
3楼,4楼回答是正解。
5楼要耐心,初学者也是变成老鸟的
[解决办法]
建议楼主,发错误提示及源码时,要发最新的错误提示及源码。
你目前发的出错是55行,代码却没有55行。
[解决办法]
打印下String数组,看是否有值的
[解决办法]
你进行单步调试吧,在提示的位置打上断点,并且利用eclipse自带的variables查看参数的值,或者对某个参数右键,然后选择watch就能进行观察,一步一步的你就会发现为什么,或者到哪一步的时候出现了错误,或者和你原来想的不一样了。编译器有时候和我们的大脑思考的运行肯定不一样的!加油吧,一起学习!
[解决办法]
这是不可能的