Причина, по которой Android Studio не может найти эти классы, заключается в том, что они были переименованы в версии 19.0.0 SDK ML Kit, как вы можете видеть в обновленной Документации .
Вот список изменений:
Классы
FirebaseVisionLabelDetectorOptions
-> FirebaseVisionOnDeviceImageLabelerOptions
FirebaseVisionCloudDetectorOptions
-> FirebaseVisionCloudImageLabelerOptions
FirebaseVisionLabelDetector
-> FirebaseVisionImageLabeler
FirebaseVisionCloudLabelDetector
-> FirebaseVisionImageLabeler
FirebaseVisionLabel
-> FirebaseVisionImageLabel
FirebaseVisionCloudLabel
-> FirebaseVisionImageLabel
Методы
getVisionCloudLabelDetector()
-> getCloudImageLabeler()
getVisionLabelDetector()
-> getOnDeviceImageLabeler()
getLabel()
-> getText()
detectInImage()
-> processImage()
Таким образом, в основном ваш код станет:
class ImageActivity : AppCompatActivity() {
// ... omited code for brevity
private fun labelImages(image: FirebaseVisionImage) {
val options = FirebaseVisionOnDeviceImageLabelerOptions.Builder()
.setConfidenceThreshold(0.8f)
.build()
val detector = FirebaseVision.getInstance()
.onDeviceImageLabeler
val result = detector.processImage(image)
.addOnSuccessListener { labels ->
for (label in labels) {
val text = label.text
val entityId = label.entityId
val confidence = label.confidence
}
}
}
private fun labelImagesCloud(image: FirebaseVisionImage) {
val options = FirebaseVisionCloudImageLabelerOptions.Builder()
.setModelType(FirebaseVisionCloudImageLabelerOptions.LATEST_MODEL)
.setMaxResults(30)
.build()
val detector = FirebaseVision.getInstance()
.cloudImageLabeler
val result = detector.processImage(image)
.addOnSuccessListener(
object : OnSuccessListener<List<FirebaseVisionImageLabel>> {
override fun onSuccess(labels: List<FirebaseVisionImageLabel>) {
for (label in labels) {
val text = label.text
val entityId = label.entityId
val confidence = label.confidence
}
}
})
}
}