抱歉,我的问题很长,但我真的可以使用帮助

因此,我一直在尝试为此相机项目开发一款相机应用。一般来说,我对编码真的很陌生,对Java的了解也不多。我决定使用Furgle的CameraKit库来帮助我。他们说我要做的就是

 protected void onResume() {
    super.onResume();
    CameraView.start();




 @Override
    protected void onPause () {
        super.onPause();
        CameraView.stop();

    }


我应该能够启动和停止尝试创建的相机预览。
但是,当我将此代码添加到我的主要活动中时,得到以下信息:


  非静态方法'stop()'/'start()'不能从静态上下文中引用


我已经尝试了一些尝试,例如尝试创建该类的对象并从中调用该方法(我不确定我是否正确地说了这句话)

   @Override
protected void onResume() {
    super.onResume();
    CameraView main = new CameraView()
    main.start();


当我尝试运行它时,我得到:


  无法解析构造函数CameraView()


我还尝试创建名为“ CameraView”的类的实例,在该实例中,方法为“ start();”。和“ stop();”是。可悲的是,我无法做到这一点。

关键是我尽了我所能理解的一切,但是任何帮助将不胜感激。

在查看了库的代码之后,我发现CameraView类中的start方法或stop方法均未声明为“静态”。所以我真的不知道问题出在哪里以及如何解决

最佳答案

假设您要遵循的教程是这个https://github.com/gogopop/CameraKit-Android#usage ...

当他们说“您所要做的”时,请添加以下代码:

@Override
protected void onResume() {
    super.onResume();
    cameraView.start();
}

@Override
protected void onPause() {
    cameraView.stop();
    super.onPause();
}


他们正在与经验丰富的开发人员交谈。他们遗漏的部分是cameraView的来源?

好吧,第一步是在布局中包含<CameraView>。但即使在那之后,您仍然需要找到它并将其分配给cameraView变量。因此,实际上,您需要以下所有内容:

public class MainActivity extends AppCompatActivity {

    private CameraView cameraView;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main); // `activity_main.xml` must have a `<CameraView>` tag with id `camera`
        cameraView = (CameraView) findViewById(R.id.camera);
    }

    @Override
    protected void onResume() {
        super.onResume();
        cameraView.start();
    }

    @Override
    protected void onPause() {
        cameraView.stop();
        super.onPause();
    }
}

10-06 07:18