簡體   English   中英

在靜態上下文中從調用非靜態方法

[英]Calling a non static method from a in a static context

抱歉,我的問題很長,但我真的可以使用幫助

因此,我一直在嘗試為此相機項目開發一款相機應用。 一般而言,我對編碼真的很陌生,對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> 但即使在那之后,您仍然需要找到它並將其分配給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();
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM