我正在使用Firebase设置TextRecognition,并且“ image”变量给我一个“必须初始化变量“ image””错误。
我已经按照教程进行学习,直到现在都没有任何问题。
val image: FirebaseVisionImage
try {
image = FirebaseVisionImage.fromFilePath(this, result.uri)
} catch (e: IOException) {
e.printStackTrace()
}
val detector = FirebaseVision.getInstance()
.onDeviceTextRecognizer
//This is what's giving me an error \/
val myResult = detector.processImage(image)
.addOnSuccessListener { firebaseVisionText ->
// Task completed successfully
// ...
}
.addOnFailureListener {
// Task failed with an exception
// ...
}
我希望我的应用在运行时不会崩溃。
答案 0 :(得分:1)
您有两个代码路径,一个在其中初始化图像,另一个在未初始化的路径:
try {
image = FirebaseVisionImage.fromFilePath(this, result.uri)
} catch (e: IOException) {
e.printStackTrace()
}
如果您的代码经过了FirebaseVisionImage.fromFilePath
引发异常的第二条代码路径,则您的代码将继续运行而不会初始化图像。在这种情况下,随后的代码尝试使用未初始化的image
时将失败。
所有您需要做的就是将image
内的代码移到try
内的{em> 内,其中已知image
有一个值,而不是< em>之后,不确定image
是否有值。