首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >CameraX未正确初始化。需要调用CameraX.initialize()或CameraXConfig.Provider

CameraX未正确初始化。需要调用CameraX.initialize()或CameraXConfig.Provider
EN

Stack Overflow用户
提问于 2019-12-11 10:01:26
回答 1查看 6.4K关注 0票数 0

根据发布说明(https://developer.android.com/jetpack/androidx/releases/camera#camera-core-1.0.0-alpha07),我正在使用新的camerax (2019年12月04 ),并看到一个CameraX未初始化的错误。我的测试手机是Nokia5,以前使用的是CameraX依赖的旧版本。我希望能在getInstance()方法中帮助我通过这个错误来指导我。

相似问题java.lang.IllegalStateException: CameraX not initialized yet

cameraProviderFuture =ProcessCameraProvider.getInstance(此);

在这里崩溃

代码语言:javascript
复制
    cameraProviderFuture.addListener(() -> {
        try {
            ProcessCameraProvider cameraProvider = (ProcessCameraProvider) cameraProviderFuture.get();
            bindPreview(cameraProvider);
        } catch (ExecutionException | InterruptedException e) {
            e.printStackTrace();
        }
    }, ContextCompat.getMainExecutor(this));

异常如下所示:

Ldalvik/system/CloseGuard;->open(Ljava/lang/String;)V (light,reflection)访问隐藏方法Ldalvik/system/CloseGuard;ComponentInfo{com.example.camx/com.example.camx.CameraActivity}:->warnIfOpen()V (轻型灰列表,反射) D/CameraActivity: onCreate: D/AndroidRuntime:关闭VM E/AndroidRuntime:致命异常:主进程: com.example.camx,PID: 26631 java.lang.RuntimeException:无法启动活动onCreate java.lang.IllegalStateException: CameraX未正确初始化。要么需要调用CameraX.initialize(),要么CameraXConfig.Provider接口必须由应用程序类实现。在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2928) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3063) 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:1823)在android.os.Handler.dispatchMessage(Handler.java:107) at android.os.Looper.loop(Looper.java:198)在android.app.ActivityThread.main(ActivityThread.java:6729) at java.lang.reflect.Method.invoke(本地方法)在com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493) at com.android.internal.os.ZygoteInit。由: java.lang.IllegalStateException: CameraX引起的main(CameraX)未正确初始化。要么需要调用CameraX.initialize(),要么CameraXConfig.Provider接口必须由应用程序类实现。在androidx.camera.core.CameraX.getOrCreateInstance(CameraX.java:797) at androidx.camera.lifecycle.ProcessCameraProvider.getInstance(ProcessCameraProvider.java:98) at com.example.camx.CameraActivity.onCreate(CameraActivity.java:92) at android.app.Activity.performCreate(Activity.java:7136) at android.app.Activity.performCreate(Activity.java:7127) at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1272)在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2908) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3063)在android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:78)在android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:108)在android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:68)在android.app.ActivityThread$H.handleMessage(ActivityThread.java:1823)在android.os.Handler.dispatchMessage(Handler.java:107) at android.os.Looper.loop(Looper.java:198)在android.app.ActivityThread.main(ActivityThread.java:6729)在java.lang.reflect.Method.invoke(原生方法)在com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)在com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858)的I/Process:发送信号。PID: 26631 SIG: 9进程26631终止。

级依赖关系:

代码语言:javascript
复制
def camerax_version = "1.0.0-alpha07"
implementation "androidx.camera:camera-core:$camerax_version"
implementation "androidx.camera:camera-camera2:$camerax_version"
implementation "androidx.camera:camera-view:1.0.0-alpha04"
implementation "androidx.camera:camera-lifecycle:1.0.0-alpha01"
EN

回答 1

Stack Overflow用户

发布于 2019-12-17 14:09:34

参考资料:https://developer.android.com/jetpack/androidx/releases/camera#camera-camera2-1.0.0-alpha07

正如CameraX参考中所提到的,开发人员应该在应用程序类中实现CameraXConfig.Provider

CameraX初始化已更改。应用程序应该实现CameraXConfig.Provider,并使用androidx.camera.camera2提供的默认Camera2Config。

代码语言:javascript
复制
import androidx.camera.camera2.Camera2Config
import androidx.camera.core.CameraXConfig

public class MyCameraXApplication : Application(),  CameraXConfig.Provider {
    override fun getCameraXConfig(): CameraXConfig {
            return Camera2Config.defaultConfig(this)
    }
}
票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59283174

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档