Static initialization of OpenCV on Android
Hello people,
i have a problem with openCV on Android. I need to use static initialization, i followed this tutorial
I have linked the correct library to my project, but when I run the application, I get a black screen
This is the code of the MainActivity
package org.opencv.samples.tutorial2; import org.opencv.android.OpenCVLoader; import android.app.Activity; import android.app.AlertDialog; import android.content.DialogInterface; import android.os.Bundle; import android.util.Log; import android.view.Menu; import android.view.MenuItem; import android.view.Window; public class Sample2NativeCamera extends Activity { static { if (!OpenCVLoader.initDebug()) Log.d("ERROR", "Unable to load OpenCV"); else Log.d("SUCCESS", "OpenCV loaded"); } private static final String TAG = "Sample::Activity"; public static final int VIEW_MODE_RGBA = 0; public static final int VIEW_MODE_GRAY = 1; public static final int VIEW_MODE_CANNY = 2; private MenuItem mItemPreviewRGBA; private MenuItem mItemPreviewGray; private MenuItem mItemPreviewCanny; public static int viewMode = VIEW_MODE_RGBA; private Sample2View mView; public Sample2NativeCamera() { Log.i(TAG, "Instantiated new " + this.getClass()); } @Override protected void onPause() { Log.i(TAG, "onPause"); super.onPause(); if (null != mView) mView.releaseCamera(); } @Override protected void onResume() { Log.i(TAG, "onResume"); super.onResume(); if ((null != mView) && !mView.openCamera()) { AlertDialog ad = new AlertDialog.Builder(this).create(); ad.setCancelable(false); // This blocks the 'BACK' button ad.setMessage("Fatal error: can't open camera!"); ad.setButton("OK", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int which) { dialog.dismiss(); finish(); } }); ad.show(); } } /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { Log.i(TAG, "onCreate"); super.onCreate(savedInstanceState); requestWindowFeature(Window.FEATURE_NO_TITLE); } @Override public boolean onCreateOptionsMenu(Menu menu) { Log.i(TAG, "onCreateOptionsMenu"); mItemPreviewRGBA = menu.add("Preview RGBA"); mItemPreviewGray = menu.add("Preview GRAY"); mItemPreviewCanny = menu.add("Canny"); return true; } @Override public boolean onOptionsItemSelected(MenuItem item) { Log.i(TAG, "Menu Item selected " + item); if (item == mItemPreviewRGBA) viewMode = VIEW_MODE_RGBA; else if (item == mItemPreviewGray) viewMode = VIEW_MODE_GRAY; else if (item == mItemPreviewCanny) viewMode = VIEW_MODE_CANNY; return true; } }
Please update your original question with answers to my questions above.
i also have a similar problem: http://answers.opencv.org/question/2658/static-initialization-problem/ The prebuilt samples work correctly without static initialization but not with static initialization. i hope you can help me.