Ich habe ein einfaches Projekt, das nur die Kamera mit org.opencv.android.JavaCameraView zeigen.Klasse muss abstrakt erklärt werden oder implementieren abstrakte Methode
und ich erhalte diesen folgenden Fehler mit rot unterstrichen:
Class 'HelloVisionActivity' muss abstrakt deklariert werden oder implementieren abstrakte Methode 'onCameraViewStopped()' in CvCameraViewListener2'
auf public class HelloVisionActivity erstreckt Aktivität CvCameraViewListener2 implementiert
dies ein Teil meines Code ist:
public class HelloVisionActivity extends Activity implements CvCameraViewListener2 {
private static final String TAG = "Example::HelloVisionWorld::Activity";
private CameraBridgeViewBase mOpenCvCameraView;
public Mat onCameraFrame(CvCameraViewFrame inputFrame) {
return inputFrame.rgba();
}
@Override
protected void onCreate(Bundle savedInstanceState) {
Log.i(TAG, "called onCreate");
super.onCreate(savedInstanceState);
getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
setContentView(R.layout.activity_hello_vision);
mOpenCvCameraView = (CameraBridgeViewBase) findViewById(R.id.HelloVisionView);
//Set the view as visible
mOpenCvCameraView.setVisibility(SurfaceView.VISIBLE);
mOpenCvCameraView.setCvCameraViewListener(this);
}
@Override
public void onResume() {
super.onResume();
OpenCVLoader.initAsync(OpenCVLoader.OPENCV_VERSION_2_4_8, this, mLoaderCallback);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.menu_hello_vision, menu);
return true;
}
private BaseLoaderCallback mLoaderCallback = new BaseLoaderCallback(this) {
@SuppressLint("LongLogTag")
@Override
public void onManagerConnected(int status) {
switch (status) {
case LoaderCallbackInterface.SUCCESS: {
Log.i(TAG, "OpenCV loaded successfully");
mOpenCvCameraView.enableView();
}
break;
default: {
super.onManagerConnected(status);
}
break;
}
}
};
@Override
public boolean onOptionsItemSelected(MenuItem item) {
int id = item.getItemId();
if (id == R.id.action_settings) {
return true;
}
return super.onOptionsItemSelected(item);
}