错误:找不到符号方法 setPreviewDisplay(SurfaceHolder)

Posted

技术标签:

【中文标题】错误:找不到符号方法 setPreviewDisplay(SurfaceHolder)【英文标题】:error: cannot find symbol method setPreviewDisplay(SurfaceHolder) 【发布时间】:2016-07-05 16:33:07 【问题描述】:

我在 macbook 上使用 android Studio 按照官方 android 文档创建简单的相机应用程序。但是,当我尝试拨打 camera.setPreviewDisplay(SurfaceHolder) 时,我收到以下错误:

错误:(29, 16) 错误: 找不到符号方法 setPreviewDisplay(SurfaceHolder)

另外我的CameraPreview类如下:

package com.opencv.camerapreview;

import android.content.Context;
import android.graphics.Camera;
import android.graphics.Canvas;
import android.graphics.Rect;
import android.view.Surface;
import android.view.SurfaceHolder;
import android.view.SurfaceView;


public class CameraPreview extends SurfaceView implements SurfaceHolder.Callback
    private SurfaceHolder surfaceHolder;
    private Camera mCamera;

    public CameraPreview(Context context, Camera camera) 
        super(context);
        mCamera=camera;
        this.surfaceHolder= getHolder();
        this.surfaceHolder.addCallback(this);
        surfaceHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);
    


    @Override
    public void surfaceCreated(SurfaceHolder holder) 
        mCamera.setPreviewDisplay(holder);

    

    @Override
    public void surfaceChanged(SurfaceHolder holder, int format, int width, int height) 

    

    @Override
    public void surfaceDestroyed(SurfaceHolder holder) 

    

看起来这是 Android Studio 中的一些链接问题。任何人都可以阐明为什么会发生这种情况和解决方案。谢谢

【问题讨论】:

【参考方案1】:

你已经导入了

import android.graphics.Camera;

你应该导入

import android.hardware.Camera;

甚至

import android.hardware.camera2;

如果您的目标是 API 21 及更高版本。

【讨论】:

以上是关于错误:找不到符号方法 setPreviewDisplay(SurfaceHolder)的主要内容,如果未能解决你的问题,请参考以下文章

错误:找不到符号方法 setPreviewDisplay(SurfaceHolder)

java踩坑-编译错误:FastJson与lombok导致找不到符号:方法getId

当我在此页面中声明方法时,为啥此代码会出现“找不到符号”错误?

错误:找不到符号方法 findViewById(int) [重复]

踩坑-编译错误:FastJson与lombok导致找不到符号:方法getId()

Java编译错误:找不到符号[关闭]