makeLineメソッドが何とかヌル配列を作成した疑いがありますが、わかりません。Android:nullpointerexceptionヌル配列から読み取ろうとしました
ご協力いただければ幸いです!私のコードの抜粋は以下の通りです:
public void all() {
int[][] line = new int[3][];
for (int i = 0; i < 3; i++) {
if (i > 0 && line[i - 1][0] == 2) { // Error occurs at this line
int start = line[i - 1][2];
int pos = line[i - 1][1];
int xy = line[i - 1][3]++;
if (line[i - 1][3] == 1) {
int end = y()[1];
line[i] = new int[]{1, start, end, pos, xy};
} else {
int end = x()[1];
line[i] = new int[]{1, start, end, pos, xy};
}
} else {
line[i] = makeLine();
}
}
}
private int[] makeLine() {
Random r = new Random();
int startX = x()[0];
int endX = x()[1];
int startY = y()[0];
int endY = y()[1];
int xy = r.nextInt(3 - 1) + 1;
if (xy == 1) {
return new int[]{1, startX, endX, startY, xy};
}
return new int[]{1, startY, endY, startX, xy};
}
private int[] x() {
DisplayMetrics displaymetrics = context.getResources().getDisplayMetrics();
int xLeft = (int) (13 * displaymetrics.density);
int xRight = (int) (displaymetrics.widthPixels - (13 * displaymetrics.density));
Random r = new Random();
int startX = r.nextInt(xRight - xLeft) + xLeft;
int endX = r.nextInt(xRight - xLeft) + xLeft;
return new int[]{startX, endX};
}
private int[] y() {
DisplayMetrics displaymetrics = context.getResources().getDisplayMetrics();
int yTop = (int) (60 * displaymetrics.density);
int yBottom = (int) (displaymetrics.heightPixels - (51 * displaymetrics.density));
Random r = new Random();
int startY = r.nextInt(yBottom - yTop) + yTop;
int endY = r.nextInt(yBottom - yTop) + yTop;
return new int[]{startY, endY};
}
にあなたが取得している完全なエラー/スタックトレースを投稿することができますか? –
私はここにあなたを助けるのに十分な情報がないと思います。私たちが実行できる完全な例を私たちに提供する必要があります。現時点では、いくつかのメソッド(例えば、 'x()'と 'y()')が欠落しているため、これは不可能です。 –