Добрый день!
Возникает следующая ошибка при компиляции проекта:
Internal error: (java.lang.ClassNotFoundException) org.jetbrains.jps.android.builder.AndroidPackagingBuildTarget
java.lang.ClassNotFoundException: org.jetbrains.jps.android.builder.AndroidPackagingBuildTarget
at java.base/java.net.URLClassLoader.findClass(URLClassLoader.java:471)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:588)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521)
at org.jetbrains.jps.android.AndroidBuilderService.getTargetTypes(AndroidBuilderService.java:21)
at org.jetbrains.jps.incremental.TargetTypeRegistry.<init>(TargetTypeRegistry.java:26)
at org.jetbrains.jps.incremental.TargetTypeRegistry.<init>(TargetTypeRegistry.java:13)
at org.jetbrains.jps.incremental.TargetTypeRegistry$Holder.<clinit>(TargetTypeRegistry.java:16)
at org.jetbrains.jps.incremental.TargetTypeRegistry.getInstance(TargetTypeRegistry.java:21)
at org.jetbrains.jps.builders.impl.BuildTargetRegistryImpl.<init>(BuildTargetRegistryImpl.java:41)
at org.jetbrains.jps.cmdline.BuildRunner.load(BuildRunner.java:76)
at org.jetbrains.jps.cmdline.BuildSession.runBuild(BuildSession.java:271)
at org.jetbrains.jps.cmdline.BuildSession.run(BuildSession.java:127)
at org.jetbrains.jps.cmdline.BuildMain$MyMessageHandler.lambda$channelRead0$0(BuildMain.java:218)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
at java.base/java.lang.Thread.run(Thread.java:834)
До запуска кода ошибки не показывает. Подскажите, пожалуйста, куда копать.
До запуска кода ошибки не показывает. Подскажите, пожалуйста, куда копать.package com.javarush.task.task22.task2213;
import java.util.ArrayList;
import java.util.List;
/**
* Класс Field описывает "поле клеток" игры Тетрис
*/
public class Field {
//ширина и высота
private int width;
private int height;
//матрица поля: 1 - клетка занята, 0 - свободна
private int[][] matrix;
public Field(int width, int height) {
this.width = width;
this.height = height;
matrix = new int[height][width];
}
public int getWidth() {
return width;
}
public int getHeight() {
return height;
}
public int[][] getMatrix() {
return matrix;
}
/**
* Метод возвращает значение, которое содержится в матрице с координатами (x,y)
* Если координаты за пределами матрицы, метод возвращает null.
*/
public Integer getValue(int x, int y) {
if (x >= 0 && x < width && y >= 0 && y < height)
return matrix[y][x];
return null;
}
/**
* Метод устанавливает переданное значение(value) в ячейку матрицы с координатами (x,y)
*/
public void setValue(int x, int y, int value) {
if (x >= 0 && x < width && y >= 0 && y < height)
matrix[y][x] = value;
}
/**
* Метод печатает на экран текущее содержание матрицы
*/
public void print() {
//Создаем массив, куда будем "рисовать" текущее состояние игры
int[][] canvas = new int[height][width];
//Копируем "матрицу поля" в массив
for (int i = 0; i < height; i++) {
for (int j = 0; j < width; j++) {
canvas[i][j] = matrix[i][j];
}
}
//Копируем фигурку в массив, только непустые клетки
int left = Tetris.game.getFigure().getX();
int top = Tetris.game.getFigure().getY();
int[][] brickMatrix = Tetris.game.getFigure().getMatrix();
for (int i = 0; i < 3; i++) {
for (int j = 0; j < 3; j++) {
if (top + i >= height || left + j >= width) continue;
if (brickMatrix[i][j] == 1)
canvas[top + i][left + j] = 2;
}
}
//Выводим "нарисованное" на экран, но начинаем с "границы кадра".
System.out.println("---------------------------------------------------------------------------\n");
for (int i = 0; i < height; i++) {
for (int j = 0; j < width; j++) {
int index = canvas[i][j];
if (index == 0)
System.out.print(" . ");
else if (index == 1)
System.out.print(" X ");
else if (index == 2)
System.out.print(" X ");
else
System.out.print("???");
}
System.out.println();
}
System.out.println();
System.out.println();
}
/**
* Удаляем заполненные линии
*/
public void removeFullLines() {
//Например так:
//Создаем список для хранения линий
//Копируем все неполные линии в список.
//Добавляем недостающие строки в начало списка.
//Преобразуем список обратно в матрицу
ArrayList<int[]> listOfLines = new ArrayList<int[]>();
for(int i= 0; i<height-1; i--){
/* boolean full = true;
for(int j=0; j<width; j++){
if(matrix[i][j]==0) {
full = false;
break;
}
}
if(!full)listOfLines.add(matrix[i].clone());*/
//подсчитываем количество единиц в строке - просто суммируем все ее значения
int count = 0;
for (int j = 0; j < width; j++) {
count += matrix[i][j];
}
//Если сумма строки не равна ее ширине - добавляем в список
if (count != width)
listOfLines.add(matrix[i]);
}
while (listOfLines.size() < height) {
listOfLines.add(0, new int[width]);
}
matrix = listOfLines.toArray(new int[height][width]);
}
}