java.lang.IllegalArgumentException: предлагаемое разрешение карты отсутствует разрешение для камеры 1
Эта ошибка возникает при использовании CameraX.LensFacing.FRONT
, тестировал на эмуляторе
E/AndroidRuntime: FATAL EXCEPTION: main
Process: meter.meter, PID: 15289
java.lang.RuntimeException: Unable to start activity ComponentInfo{meter.meter/meter.meter.CameraActivity}: java.lang.IllegalArgumentException: Suggested resolution map missing resolution for camera 1
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2913)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3048)
at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:78)
at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:108)
at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:68)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1808)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loop(Looper.java:193)
at android.app.ActivityThread.main(ActivityThread.java:6669)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858)
Caused by: java.lang.IllegalArgumentException: Suggested resolution map missing resolution for camera 1
at androidx.camera.core.Preview.onSuggestedResolutionUpdated(Preview.java:310)
at androidx.camera.core.UseCase.updateSuggestedResolution(UseCase.java:375)
at androidx.camera.core.CameraX.calculateSuggestedResolutions(CameraX.java:458)
at androidx.camera.core.CameraX.bindToLifecycle(CameraX.java:144)
at meter.meter.CameraActivity.onCreate(CameraActivity.java:68)
at android.app.Activity.performCreate(Activity.java:7136)
at android.app.Activity.performCreate(Activity.java:7127)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1271)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2893)
Код:
PreviewConfig config = new PreviewConfig.Builder().setLensFacing(CameraX.LensFacing.FRONT).build();
Preview preview = new Preview(config);
TextureView textureView = findViewById(R.id.textureView);
preview.setOnPreviewOutputUpdateListener(new Preview.OnPreviewOutputUpdateListener() {
@Override
public void onUpdated(Preview.PreviewOutput output) {
textureView.setSurfaceTexture(output.getSurfaceTexture());
}
});
ImageCaptureConfig imageCaptureConfig = new ImageCaptureConfig.Builder().build();
imageCapture = new ImageCapture(imageCaptureConfig);
CameraX.bindToLifecycle((LifecycleOwner) this,imageCapture, preview);
1 ответ
Добавлять setLensFacing(CameraX.LensFacing.FRONT)
в ImageCaptureConfig
должен решить вашу проблему
В дополнение к ответу Nestos, я должен был добавить setLensFacing(CameraX.LensFacing.FRONT)
для обоих ImageCaptureConfig и PreviewConfig, чтобы сделать эту работу.
Вам следует позвонить setLensFacing(..)
для каждой конфигурации UseCase
что вы перешли к
CameraX.bindToLifecycle((LifecycleOwner) this, imageCapture, preview)
Вам нужно добавить линзу setLensFacing(lensFacing)
в следующие области:
1. PreviewConfig
2. ImageCaptureConfig
3. ImageAnalysisConfig
И это должно сработать.
PreviewConfig ImageCaptureConfig ImageAnalysisConfig Все необходимо добавить
setLensFacing(CameraX.LensFacing.FRONT)
Вот как я это настроил