如何修复“变量'图像'必须初始化”

时间:2019-07-31 04:19:30

标签: firebase kotlin firebase-mlkit

我正在使用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
                    // ...
                }

我希望我的应用在运行时不会崩溃。

1 个答案:

答案 0 :(得分:1)

您有两个代码路径,一个在其中初始化图像,另一个在未初始化的路径:

        try {
            image = FirebaseVisionImage.fromFilePath(this, result.uri)
        } catch (e: IOException) {
            e.printStackTrace()
        }

如果您的代码经过了FirebaseVisionImage.fromFilePath引发异常的第二条代码路径,则您的代码将继续运行而不会初始化图像。在这种情况下,随后的代码尝试使用未初始化的image时将失败。

所有您需要做的就是将image内的代码移到try内的{em> 内,其中已知image有一个值,而不是< em>之后,不确定image是否有值。