gpt4 book ai didi

java - 无法加载opencv_java249 : findLibrary returned null - OpenCV in Android Studio

转载 作者:行者123 更新时间:2023-12-02 05:44:54 29 4
gpt4 key购买 nike

我正在尝试将 Open CV 库加载到我的 Android Studio 应用程序中。我需要在我的应用程序中进行圆圈检测。

我使用本教程来加载这个库: How to use opencv in android studio using gradle build tool?(本页最后一篇)。

在运行我的程序之前,一切看起来都正确。但是当我尝试运行它时出现错误:

   06-11 14:48:02.010    1349-1349/com.example.teczowka.app E/AndroidRuntime﹕ FATAL EXCEPTION: main
java.lang.UnsatisfiedLinkError: Couldn't load opencv_java249: findLibrary returned null
at java.lang.Runtime.loadLibrary(Runtime.java:365)
at java.lang.System.loadLibrary(System.java:535)
at com.example.teczowka.app.MojHough.process(MojHough.java:23)
at com.example.teczowka.app.MainActivity.onOptionsItemSelected(MainActivity.java:98)
at android.app.Activity.onMenuItemSelected(Activity.java:2534)
at android.support.v4.app.FragmentActivity.onMenuItemSelected(FragmentActivity.java:372)
at android.support.v7.app.ActionBarActivity.superOnMenuItemSelected(ActionBarActivity.java:244)
at android.support.v7.app.ActionBarActivityDelegateICS.onMenuItemSelected(ActionBarActivityDelegateICS.java:164)
at android.support.v7.app.ActionBarActivity.onMenuItemSelected(ActionBarActivity.java:130)
at android.support.v7.app.ActionBarActivityDelegateICS$WindowCallbackWrapper.onMenuItemSelected(ActionBarActivityDelegateICS.java:308)
at com.android.internal.policy.impl.PhoneWindow.onMenuItemSelected(PhoneWindow.java:958)
at com.android.internal.view.menu.MenuBuilder.dispatchMenuItemSelected(MenuBuilder.java:735)
at com.android.internal.view.menu.MenuItemImpl.invoke(MenuItemImpl.java:149)
at com.android.internal.view.menu.MenuBuilder.performItemAction(MenuBuilder.java:874)
at com.android.internal.view.menu.MenuPopupHelper.onItemClick(MenuPopupHelper.java:156)
at android.widget.AdapterView.performItemClick(AdapterView.java:298)
at android.widget.AbsListView.performItemClick(AbsListView.java:1086)
at android.widget.AbsListView$PerformClick.run(AbsListView.java:2855)
at android.widget.AbsListView$1.run(AbsListView.java:3529)
at android.os.Handler.handleCallback(Handler.java:615)
at android.os.Handler.dispatchMessage(Handler.java:92)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:4745)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
at dalvik.system.NativeStart.main(Native Method)

我几乎尝试了所有方法,但我不知道发生了什么。我花了一整天的时间来解决这个问题 - 但没有结果。谁能帮我吗?

这是我的代码:

  public Bitmap process(Bitmap src) {
System.loadLibrary(Core.NATIVE_LIBRARY_NAME);
Mat imgSource = new Mat();
Mat imgCirclesOut = new Mat();
Utils.bitmapToMat(src, imgSource);

//grey opencv
Imgproc.cvtColor(imgSource, imgSource, Imgproc.COLOR_BGR2GRAY);

Imgproc.GaussianBlur(imgSource, imgSource, new Size(9, 9), 2, 2);
Imgproc.HoughCircles(imgSource, imgCirclesOut, Imgproc.CV_HOUGH_GRADIENT, 1, imgSource.rows() / 8, 200, 100, 0, 0);

float circle[] = new float[3];

for (int i = 0; i < imgCirclesOut.cols(); i++) {
imgCirclesOut.get(0, i, circle);
org.opencv.core.Point center = new org.opencv.core.Point();
center.x = circle[0];
center.y = circle[1];
Core.circle(imgSource, center, (int) circle[2], new Scalar(255, 0, 0, 255), 4);
}
Bitmap bmp = Bitmap.createBitmap(src.getWidth(), src.getHeight(), Bitmap.Config.ARGB_8888);

Utils.matToBitmap(imgSource, bmp);
return bmp;
}

最佳答案

首先尝试将所有库加载到静态 block 中

static{
OpenCVLoader.initDebug();
System.loadLibrary(Core.NATIVE_LIBRARY_NAME);
}

并检查您的 apk 文件以确保 opencv 库 (*.so) 包含在 apk 中。 (尝试使用存档查看器打开 apk 并查看“libs”目录)

最后,库名称有点奇怪,它通常是“libopencv_java.so”(对于所有 opencv 版本,包括 2.4.9),所以我想尝试加载它而不是 Core.NATIVE_LIBRARY_NAME 看看是否发生了任何情况。

关于java - 无法加载opencv_java249 : findLibrary returned null - OpenCV in Android Studio,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24166192/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com