Android – Auf das Konstrukt von ResolutionStrategy kann nicht zugegriffen werden
Posted: 03 Jan 2025, 10:04
Ich erstelle eine App, die das Google ML Kit verwendet, um ein menschliches Gesicht auf einem Bild zu erkennen und ein Rechteck darum zu zeichnen. Die Kameravorschau wird von CameraX bereitgestellt ()-Bibliothek. Diese Frage ließ mich inspirieren. Hier ist das problematische Fragment eines Codes:
Der einzige Fehler, der von der IDE (Android Studio Ladybug 2024.2.1 Patch 3) angezeigt wird, ist
"Zugriff auf 'constructor(): ResolutionStrategy' nicht möglich: Das ist der Fall privat in 'androidx/camera/core/resolutionselector/ResolutionStrategy'"
Das kommt mir sehr seltsam vor, da auf der Android-Entwickler-Website ein öffentlicher Konstruktor dokumentiert ist und ich das auch kann Navigieren Sie zum selben öffentlichen Konstruktor, indem Sie auf Gehe zu > Deklaration klicken. Wenn ich jedoch mit der Maus über den von strategy verwendeten Konstruktor fahre, zeigt die IDE den privaten Konstruktor an. Warum passiert es und wie kann man es beheben?
Code: Select all
androidx.camera
Code: Select all
@OptIn(ExperimentalGetImage::class)
private fun startCamera(deviceSize: Pair) {
val cameraProviderFuture = ProcessCameraProvider.getInstance(this)
cameraProviderFuture.addListener({
val cameraProvider = cameraProviderFuture.get()
val preview = Preview.Builder().build().also {
it.surfaceProvider = PreviewView(this).surfaceProvider
}
val size = Size(deviceSize.first, deviceSize.second)
val strategy = ResolutionStrategy(deviceSize, 2)
val rs = ResolutionSelector.Builder().setResolutionStrategy(strategy)
val imageAnalysis = ImageAnalysis.Builder()
.setBackpressureStrategy(ImageAnalysis.STRATEGY_KEEP_ONLY_LATEST)
.setResolutionSelector(rs.build())
.build()
imageAnalysis.setAnalyzer(cameraExecutor) { imageProxy ->
val rotationDegrees = imageProxy.imageInfo.rotationDegrees
val mediaImage = imageProxy.image
if (mediaImage != null) {
val inputImage = InputImage.fromMediaImage(mediaImage, rotationDegrees)
detectFaces(inputImage) { faces ->
drawRectangles(faces)
imageProxy.close()
}
} else {
imageProxy.close()
}
}
val cameraSelector = CameraSelector.DEFAULT_FRONT_CAMERA
try {
cameraProvider.unbindAll()
cameraProvider.bindToLifecycle(this, cameraSelector, preview, imageAnalysis)
} catch (e: Exception) {
e.printStackTrace()
}
}, ContextCompat.getMainExecutor(this))
}
"Zugriff auf 'constructor(): ResolutionStrategy' nicht möglich: Das ist der Fall privat in 'androidx/camera/core/resolutionselector/ResolutionStrategy'"
Das kommt mir sehr seltsam vor, da auf der Android-Entwickler-Website ein öffentlicher Konstruktor dokumentiert ist und ich das auch kann Navigieren Sie zum selben öffentlichen Konstruktor, indem Sie auf Gehe zu > Deklaration klicken. Wenn ich jedoch mit der Maus über den von strategy verwendeten Konstruktor fahre, zeigt die IDE den privaten Konstruktor an. Warum passiert es und wie kann man es beheben?