Android : No implementation found for native Lcom

on Monday, March 23, 2015


I'm developing a Cordova plugin that uses OpenCV library and, given some metrics about exercise, predicts which type of exercise you are doing. I've a XML file with training information but I'm having problems importing my exercise params.


I'm using OpenCV native Android files in order to create a CvSVM object and pass the parameters told above.


My code is (brackets are manually integrated by me to get a better reference from error):



[33]CvSVM cvsm = new CvSVM(); //Create machine
[34]Scalar scalar = new Scalar(metricas); //metricas is my array with parameters from physical exercise
[35]Mat mat = new Mat(1, 15, 6, scalar); //this is where it crashes, when I try to load my results from physical activity to preassign this values to the matrix "mat"**
[36]cvsm.load("modeloSVMSinHR.xml", "modeloSinHR"); //load XML with "trained params"
[37]float resultado = cvsm.predict(mat, false); //predict wich type of activity you're doing


"cvsm" object comes from CvSVM.java class which its simplest constructor is the one I use.


The error message I get is the following:



03-23 08:13:55.220: W/dalvikvm(2581): No implementation found for native Lcom/opencv/avr/CvSVM;.CvSVM_0 ()J
03-23 08:13:55.220: W/System.err(2581): java.lang.UnsatisfiedLinkError: CvSVM_0
03-23 08:13:55.220: W/System.err(2581): at com.opencv.avr.CvSVM.CvSVM_0(Native Method)
03-23 08:13:55.220: W/System.err(2581): at com.opencv.avr.CvSVM.<init>(CvSVM.java:63)
03-23 08:13:55.220: W/System.err(2581): at com.opencv.avr.OpenCV.execute(OpenCV.java:33)
03-23 08:13:55.220: W/System.err(2581): at org.apache.cordova.CordovaPlugin.execute(CordovaPlugin.java:65)
03-23 08:13:55.220: W/System.err(2581): at org.apache.cordova.PluginManager.execHelper(PluginManager.java:242)
03-23 08:13:55.220: W/System.err(2581): at org.apache.cordova.PluginManager.exec(PluginManager.java:227)
03-23 08:13:55.220: W/System.err(2581): at org.apache.cordova.ExposedJsApi.exec(ExposedJsApi.java:53)
03-23 08:13:55.220: W/System.err(2581): at org.apache.cordova.CordovaChromeClient.onJsPrompt(CordovaChromeClient.java:227)
03-23 08:13:55.220: W/System.err(2581): at android.webkit.CallbackProxy.handleMessage(CallbackProxy.java:653)
03-23 08:13:55.220: W/System.err(2581): at android.os.Handler.dispatchMessage(Handler.java:99)
03-23 08:13:55.220: W/System.err(2581): at android.os.Looper.loop(Looper.java:137)
03-23 08:13:55.220: W/System.err(2581): at android.app.ActivityThread.main(ActivityThread.java:4517)
03-23 08:13:55.230: W/System.err(2581): at java.lang.reflect.Method.invokeNative(Native Method)
03-23 08:13:55.230: W/System.err(2581): at java.lang.reflect.Method.invoke(Method.java:511)
03-23 08:13:55.230: W/System.err(2581): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:985)
03-23 08:13:55.230: W/System.err(2581): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:752)
03-23 08:13:55.230: W/System.err(2581): at dalvik.system.NativeStart.main(Native Method)


It seems like constructor CvSVM cvsm = new CvSVM() wasn't well implemented but it's one picked right from "CsSVM" class... Can anyone tell me why I'm getting this error?


0 comments:

Post a Comment