2015-09-16 57 views
1

我得到一個NullPointerException的MainViewGridView的適配器造成顯示java.lang.NullPointerException:

下面是我的代碼:

拋出錯誤

public class MainView extends Activity { 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.mainview); 

     GridView gridView = (GridView) findViewById(R.id.grid_view); 

     // Instance of ImageAdapter Class 
     gridView.setAdapter(new ImageAdapter(this)); 
    } 
} 

MAINVIEW

MainView.java -The類。 xml

<?xml version="1.0" encoding="utf-8"?> 
<GridView xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/grid_view" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:numColumns="auto_fit" 
    android:columnWidth="90dp" 
    android:horizontalSpacing="10dp" 
    android:verticalSpacing="10dp" 
    android:gravity="center" 
    android:stretchMode="columnWidth" > 
</GridView> 

ImageView.java

 public class ImageAdapter extends BaseAdapter { 
    private Context mContext; 

    // Keep all Images in array 
    public Integer[] mThumbIds = { 
      R.drawable.ic_btcar, R.drawable.ic_btcar 
    }; 

    // Constructor 
    public ImageAdapter(Context c){ 
     mContext = c; 
    } 

    @Override 
    public int getCount() { 
     return mThumbIds.length; 
    } 

    @Override 
    public Object getItem(int position) { 
     return mThumbIds[position]; 
    } 

    @Override 
    public long getItemId(int position) { 
     return 0; 
    } 

    @Override 
    public View getView(int position, View convertView, ViewGroup parent) { 
     ImageView imageView = new ImageView(mContext); 
     imageView.setImageResource(mThumbIds[position]); 
     imageView.setScaleType(ImageView.ScaleType.CENTER_CROP); 
     imageView.setLayoutParams(new GridView.LayoutParams(70, 70)); 
     return imageView; 
    } 

} 

編輯:logcat的

Process: com.***********t.obd, PID: 16766 
    java.lang.RuntimeException: Unable to start activity ComponentInfo{com.cyberscene.hazmat.obd/com.cyberscene.hazmat.obd.reader.activity.MainView}: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.GridView.setAdapter(android.widget.ListAdapter)' on a null object reference 
      at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3119) 
      at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3218) 
      at android.app.ActivityThread.access$1000(ActivityThread.java:198) 
      at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1676) 
      at android.os.Handler.dispatchMessage(Handler.java:102) 
      at android.os.Looper.loop(Looper.java:145) 
      at android.app.ActivityThread.main(ActivityThread.java:6837) 
      at java.lang.reflect.Method.invoke(Native Method) 
      at java.lang.reflect.Method.invoke(Method.java:372) 
      at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1404) 
      at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1199) 
    Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.GridView.setAdapter(android.widget.ListAdapter)' on a null object reference 
      at com.***********.activity.MainView.onCreate(MainView.java:43) 
      at android.app.Activity.performCreate(Activity.java:6500) 
      at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1120) 
      at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3072) 
            at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3218) 
            at android.app.ActivityThread.access$1000(ActivityThread.java:198) 
            at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1676) 
            at android.os.Handler.dispatchMessage(Handler.java:102) 
            at android.os.Looper.loop(Looper.java:145) 
            at android.app.ActivityThread.main(ActivityThread.java:6837) 
            at java.lang.reflect.Method.invoke(Native Method) 
            at java.lang.reflect.Method.invoke(Method.java:372) 
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1404) 
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1199) 
+0

顯示您的logcat –

+0

發佈您的logcat錯誤。 –

+0

顯示您的logcat –

回答

0

嘗試清潔您的項目,並重新構建它。

我可以在日誌中看到

:嘗試上的空對象引用調用虛擬方法 '無效android.widget.GridView.setAdapter(android.widget.ListAdapter)'

是設置適配器時,您的gridViewnull。這可能是由於參考R.java文件引起的問題。

+0

我做參考.R java文件,但是,當我刪除它的Android工作室給我一個錯誤'GridView gridView =(GridView)findViewById(R.id.grid_view);' – Shaun

+0

@Shaun on Menu select * Project - > Clean ... - > check_your_project_name *。並點擊確定。 – arun

+0

@Shaun也如果*項目 - >自動構建*未選中,然後選擇它。 – arun

相關問題