我正在尝试按照Google Codelabs 中的示例使用 CameraX 创建自定义相机应用程序。
该教程特别指出:
We recommend using an AVD that is based on Android 11 or higher.
Run Code Online (Sandbox Code Playgroud)
它可以正常工作,API 29 (Android 10)但不能正常工作API 30 (Android 10+)并产生以下错误:
2020-08-11 11:22:34.979 8607-8698/com.codelabs.camerax E/CameraCaptureSession: Session 0: Exception while stopping repeating:
android.hardware.camera2.CameraAccessException: CAMERA_ERROR (3): cancelRequest:459: Camera 0: Error clearing streaming request: Function not implemented (-38)
at android.hardware.camera2.CameraManager.throwAsPublicException(CameraManager.java:1009)
at android.hardware.camera2.impl.ICameraDeviceUserWrapper.cancelRequest(ICameraDeviceUserWrapper.java:99)
at android.hardware.camera2.impl.CameraDeviceImpl.stopRepeating(CameraDeviceImpl.java:1263)
at android.hardware.camera2.impl.CameraCaptureSessionImpl.close(CameraCaptureSessionImpl.java:578)
at android.hardware.camera2.impl.CameraCaptureSessionImpl$2.onDisconnected(CameraCaptureSessionImpl.java:789)
at android.hardware.camera2.impl.CameraDeviceImpl$7.run(CameraDeviceImpl.java:245)
at androidx.camera.core.impl.utils.executor.SequentialExecutor$1.run(SequentialExecutor.java:110)
at androidx.camera.core.impl.utils.executor.SequentialExecutor$QueueWorker.workOnQueue(SequentialExecutor.java:230)
at androidx.camera.core.impl.utils.executor.SequentialExecutor$QueueWorker.run(SequentialExecutor.java:172)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
at java.lang.Thread.run(Thread.java:923) …Run Code Online (Sandbox Code Playgroud) 如何在 Kotlin 中迭代两个列表?我想将一个列表中的每个值分配给另一个列表中的等效值textview,例如 1:1 分配。
类似下面的内容允许并行迭代,但它会被执行两次:
data class Total(val area : Double)
private fun assign(
allArea: List<Double>, allTextViews : List<TextView>
) : Total {
var totalArea = 0.0
allArea.forEach { double ->
val value : Double = double
totalArea += value
allTextViews.forEach { textView ->
textView.text = value.toString()
}
}
return Total(totalArea)
}
assign(allStates = listOf(
a,
b
),
allTextViews = listOf(
textView1,
textView2)
)
Run Code Online (Sandbox Code Playgroud) 我还是 android 编程的新手。我正在尝试使用 CameraX API 拍照。但是,Google Codelabs的示例代码仅将照片保存在符合Android 的 Scoped Storage的应用程序私有目录中。我对 Mediastore 还不了解,所以请您带我查看有关如何将 Mediastore 集成到 CameraX 的文档吗?