所以我一直在尝试使用CameraX在活动/片段中创建一个自定义相机。到目前为止,该系列相机(androidx.camera…)的最新版本是1.2.0-alpha02。所以我从1.1.0-beta01更新了它们(顺便说一下,它不工作,在bindToLifeCycle函数上抛出了一个AbstractMethodError
' cameraProviderFuture.addListener ({//用于将相机的生命周期绑定到生命周期所有者val cameraProvider: ProcessCameraProvider = cameraProviderFuture.get()
// Preview
val preview = Preview.Builder()
.build()
.also {
it.setSurfaceProvider(viewFinderBack.surfaceProvider)
}
// Select back camera as a default
val cameraSelector = CameraSelector.DEFAULT_BACK_CAMERA
try {
// Unbind use cases before rebinding
cameraProvider.unbindAll()
// Bind use cases to camera
// AbstractMethodError is thrown by bindToLifecycle
cameraProvider.bindToLifecycle(
this, cameraSelector, preview)
} catch(exc: Exception) {
Log.e(TAG, "Use case binding failed", exc)
}
}, ContextCompat.getMainExecutor(con!!))`)
如果有人有解决这个问题的办法,我很乐意使用旧版本的相机。
无论如何,在更新版本后,我运行同步,最终由于以下原因导致同步失败…
依赖项'androidx.camera:camera-lifecycle:1.2.0-alpha02'需要'compileSdkVersion'设置为32或更高。编译目标Module ':app' is 'android-31'
在构建中。gradle你需要将compileSDK/targetSDK设置为32。如果你有这个设置,你可能也需要更新你的buildTools版本。
像这样,您可能需要更改它,因为这是KTS:android {
compileSdk = 32
buildToolsVersion = "32.0.0"
compileSdkVersion = 32
}