jkhazraji Active Member Licensed User Longtime User Apr 6, 2017 #1 I have this type declaration in Process_Global: B4X: Type tempbox(X(4) As Int,Y(4) As Int ,r As Int, g As Int, b As Int, rot As Int) Dim Box(8) As tempbox When I try to fill some of the type members with values, in Start_Activity or in any other sub , as in the following: B4X: Box(1).rot = 4 Box(2).rot = 1 For i = 3 To 6 Box(i).rot = 4 Next Box(7).rot = 2 or the following in a Timer after being initialized and enabled: B4X: For i = 1 To 4 Box(rnum).Y(i) = Box(rnum).Y(i) + boxwidth Next I will get the following error: (NullPointerException) java.lang.NullPointerException Any help to fix it?
I have this type declaration in Process_Global: B4X: Type tempbox(X(4) As Int,Y(4) As Int ,r As Int, g As Int, b As Int, rot As Int) Dim Box(8) As tempbox When I try to fill some of the type members with values, in Start_Activity or in any other sub , as in the following: B4X: Box(1).rot = 4 Box(2).rot = 1 For i = 3 To 6 Box(i).rot = 4 Next Box(7).rot = 2 or the following in a Timer after being initialized and enabled: B4X: For i = 1 To 4 Box(rnum).Y(i) = Box(rnum).Y(i) + boxwidth Next I will get the following error: (NullPointerException) java.lang.NullPointerException Any help to fix it?
udg Expert Licensed User Longtime User Apr 6, 2017 #2 Did you initialize the tempobox items in the array? Upvote 0
DonManfred Expert Licensed User Longtime User Apr 6, 2017 #3 As said by @udg Initialize the Types first... B4X: For i = 0 To 7 Box(i).initialize Next Upvote 0
jkhazraji Active Member Licensed User Longtime User Apr 6, 2017 #4 Thanks a lot.. but what about this error? B4X: Dim tempx(4) As Int 'in Process_Globals . . . sub init(i as int) For i = 1 To 4 box(rnum).X(i) = tempx(i) box(rnum).Y(i) = tempy(i) Next end sub will give an error of: java.lang.ArrayIndexOutOfBoundsException: length=4; index=4 Upvote 0
Thanks a lot.. but what about this error? B4X: Dim tempx(4) As Int 'in Process_Globals . . . sub init(i as int) For i = 1 To 4 box(rnum).X(i) = tempx(i) box(rnum).Y(i) = tempy(i) Next end sub will give an error of: java.lang.ArrayIndexOutOfBoundsException: length=4; index=4
udg Expert Licensed User Longtime User Apr 6, 2017 #5 Arrays have index starting at 0 So Dim tempx(4) leads to indexes 0,1,2,3 while your For loop counts from 1 to 4. That causes the Index Out Of Bounds error. Upvote 0
Arrays have index starting at 0 So Dim tempx(4) leads to indexes 0,1,2,3 while your For loop counts from 1 to 4. That causes the Index Out Of Bounds error.