2016-01-22 33 views
-2

我嘗試使用一個月的天數來創建一個數組,但我在構建時得到了NullPointerExceptionNullPointerException在陣列

這是我的源代碼:

Calendar gCal = new GregorianCalendar(2016, Calendar.JANUARY, 1); 
    int currentDay = gCal.get(Calendar.DAY_OF_WEEK); 
    lows = (GridView)findViewById(R.id.MonthView); 
    gCal.add(Calendar.DAY_OF_YEAR, Calendar.SUNDAY - currentDay); 
    for(int i=0;i<=34;i++){ 
     lunas[i] = String.valueOf(gCal.get(Calendar.DAY_OF_MONTH)); 
     gCal.add(Calendar.DAY_OF_YEAR, 1); 
    } 

,這是我的logcat錯誤:

01-22 14:11:40.221: W/dalvikvm(19656): threadid=1: thread exiting with uncaught exception (group=0x41604898) 
01-22 14:11:40.221: E/AndroidRuntime(19656): FATAL EXCEPTION: main 
01-22 14:11:40.221: E/AndroidRuntime(19656): java.lang.RuntimeException: Unable to start activity ComponentInfo{ro.thich.programdetura/ro.thich.programdetura.MainActivity}: java.lang.NullPointerException 
01-22 14:11:40.221: E/AndroidRuntime(19656): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2221) 
01-22 14:11:40.221: E/AndroidRuntime(19656): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2271) 
01-22 14:11:40.221: E/AndroidRuntime(19656): at android.app.ActivityThread.access$600(ActivityThread.java:144) 
01-22 14:11:40.221: E/AndroidRuntime(19656): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1263) 
01-22 14:11:40.221: E/AndroidRuntime(19656): at android.os.Handler.dispatchMessage(Handler.java:99) 
01-22 14:11:40.221: E/AndroidRuntime(19656): at android.os.Looper.loop(Looper.java:137) 
01-22 14:11:40.221: E/AndroidRuntime(19656): at android.app.ActivityThread.main(ActivityThread.java:5169) 
01-22 14:11:40.221: E/AndroidRuntime(19656): at java.lang.reflect.Method.invokeNative(Native Method) 
01-22 14:11:40.221: E/AndroidRuntime(19656): at java.lang.reflect.Method.invoke(Method.java:525) 
01-22 14:11:40.221: E/AndroidRuntime(19656): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:737) 
01-22 14:11:40.221: E/AndroidRuntime(19656): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553) 
01-22 14:11:40.221: E/AndroidRuntime(19656): at de.robv.android.xposed.XposedBridge.main(XposedBridge.java:132) 
01-22 14:11:40.221: E/AndroidRuntime(19656): at dalvik.system.NativeStart.main(Native Method) 
01-22 14:11:40.221: E/AndroidRuntime(19656): Caused by: java.lang.NullPointerException 
01-22 14:11:40.221: E/AndroidRuntime(19656): at ro.thich.programdetura.MainActivity.onCreate(MainActivity.java:48) 
01-22 14:11:40.221: E/AndroidRuntime(19656): at android.app.Activity.performCreate(Activity.java:5133) 
01-22 14:11:40.221: E/AndroidRuntime(19656): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087) 
01-22 14:11:40.221: E/AndroidRuntime(19656): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2185) 
01-22 14:11:40.221: E/AndroidRuntime(19656): ... 12 more 

,這是我的線的MainActivity.java 48:

lunas[i] = String.valueOf(gCal.get(Calendar.DAY_OF_MONTH)); 

我不明白問題在哪裏。你可以幫我嗎?

+8

你是否在實例化lunas?請告訴我們這個代碼。 – James

+0

lunas在哪裏以及如何宣佈?請分享該代碼 –

+0

已經創建了這樣的對象:private String [] lunas = new String [100]; –

回答

0
public class TestActivity extends AppCompatActivity { 

    private String[] lunas = new String[100]; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.test); 
     Calendar gCal = new GregorianCalendar(2016, Calendar.JANUARY, 1); 
     int currentDay = gCal.get(Calendar.DAY_OF_WEEK); 
     gCal.add(Calendar.DAY_OF_YEAR, Calendar.SUNDAY - currentDay); 
     for(int i=0;i<=34;i++){ 
      lunas[i] = String.valueOf(gCal.get(Calendar.DAY_OF_MONTH)); 
      Log.d("Test", lunas[i]); 
      gCal.add(Calendar.DAY_OF_YEAR, 1); 
     } 

    } 


}