Эта ошибка возникает из-за этого куска кода
FirebaseVisionImage image;
try {
image = FirebaseVisionImage.fromFilePath(
MainMenuActivity.this,
Uri.fromFile(new File("/sdcard/Download/test.jpg"))
);
} catch (IOException e) {
e.printStackTrace();
}
Теперь спросите себя, что происходит с image
, если Exception
выбрасывается внутри блока try
?
переменной может присвоено правильное значение, или может не иметь .
, поскольку вы позволяете потоку выполнения продолжаться (вы не выбрасываетеException
на верхний уровень), компилятор не может знать это наверняка, поскольку исключение выдается во время выполнения.
И поскольку в Java локальная переменная должна быть инициализирована перед использованием (даже с = null
),компилятор говорит вам сделать это.
ошибка: переменное изображение, возможно, не было инициализировано
Решением может быть инициализация его с null
FirebaseVisionImage image = null;
Или лучше , чтобы убежать от Exception
.Это будет сигнализировать о наличии ошибки.
Вы также сможете полностью развернуть код из блока try - catch
.