- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我正在使用包含 opencv 的 native 库。该库在所有设备和模拟器中构建良好并运行良好,但在 Android 4.2 上则不然。它在 System.loadLibrary("mylib");
上崩溃。
该库是为 armeabi-v7a armeabi x86 mips 构建的(我在 jnilibs 文件夹中看到生成了所有 so 文件)
我被这个错误困住了,因为我在互联网上找不到任何可以解释我的问题的答案。
无法加载库:soinfo_link_image(linker.cpp:1635):无法加载库“libopencv_java.so”
,日志跟踪:
1755-1755/com.ex.app E/AndroidRuntime﹕ FATAL EXCEPTION: main
java.lang.UnsatisfiedLinkError: Cannot load library: soinfo_link_image(linker.cpp:1635): could not load library "libopencv_java.so" needed by "libmylib.so"; caused by load_library(linker.cpp:745): library "libopencv_java.so" not found
at java.lang.Runtime.loadLibrary(Runtime.java:371)
at java.lang.System.loadLibrary(System.java:535)
at com.ex.app.core.MyApplication.initVippAsync(MyApplication.java:198)
at com.ex.app.core.MyApplication.onCreate(MyApplication.java:100)
at android.app.Instrumentation.callApplicationOnCreate(Instrumentation.java:1000)
at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4391)
at android.app.ActivityThread.access$1300(ActivityThread.java:141)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1294)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:5039)
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:793)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
at dalvik.system.NativeStart.main(Native Method)
Android.mk:
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
OPENCV_INSTALL_MODULES:=on
include /Users/ahmed/Documents/openCv4android/OpenCV-2.4.10-android-sdk/sdk/native/jni/OpenCV.mk
LOCAL_MODULE := mylib
LOCAL_LDLIBS += -llog -ldl
LOCAL_SRC_FILES := myFile.c
include $(BUILD_SHARED_LIBRARY)
应用程序.mk:
APP_ABI := armeabi-v7a armeabi x86 mips
APP_PLATFORM := android-16
最佳答案
我找到了答案。这是两个步骤:
1/如果您使用的是模拟器 Genymotion,Android 4.2.2,您将缺少库,这是由 Genimotion 的更新之一引起的。参见 this .解决方案 :(1)> 下载以下压缩文件:here .(2)> 只需将其拖放到您的模拟器中即可。(3)> 重启你的模拟器。
2/在 Android 4.2 中,操作系统无法找到 apk 中提供的 jni 库的路径。例如,在我的例子中,我使用的是一个使用 openCV 库的 jni 库。对于调用 System.loadLibrary("mylib");
的每个设备和 android 版本都运行良好,mylib
自动加载 opencv 库。对于 Android 4.2,正如@Chris 在他的评论中所说,我显式加载了 openCV,所以:
System.loadLibrary("opencv_java");
System.loadLibrary("mylib");
关于Android 4.2 ndk : library loading crash: load_library(linker. cpp :750) || soinfo_link_image || libhoudini. 所以 ||打开简历,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28806373/
我目前正在迷你 PC 上制作定制的 Android Marshmallow x86 64。我已经成功安装了 Android,现在我正在尝试在钻机上安装 libhoudini,以便它可以玩 ARM 应用
NDK 二进制文件可以在 Chrome 操作系统上的 ARC 中运行。 (大家都很高兴) 但是,由于 x86 在手机和平板电脑中的市场渗透率很低,许多 Android 开发者只提供 ARM 二进制
我有一个使用原生 ARM 共享库 (.so) 的小型应用程序。使用 Genymotion 时,我可以成功安装 ARM 翻译包(只需删除 ZIP 文件)并且该应用程序可以在基于 x86 的模拟器上正常运
我从 Google Play 的用户那里收到了很多崩溃错误。所有这些错误都发生在华硕手机上(华硕 zenfone 4、5、6 和 fonepad 7)。 我不知道这些错误是什么以及如何修复这些错误。
我在 Windows 中使用 Android Studio 2.3 稳定版,在模拟器上创建任何新项目和安装 apk 时,出现此错误并且 apk 安装失败。 Error while uploading
经过大约 3 天的尝试,我放弃了。 我尝试在 android 4.2.2 模拟器上安装 libhoudini ( http://android-x86.sceners.org/en/?p=536 )。
由于某种原因,我必须从 C 生成一些文本。因此,我为此目的编写了一些 C 方法。我使用 Android studio 构建 Jni,它似乎与我的 5.1.0 Genymotion 模拟器配合得很好。但
我正在使用包含 opencv 的 native 库。该库在所有设备和模拟器中构建良好并运行良好,但在 Android 4.2 上则不然。它在 System.loadLibrary("mylib");
我将 Android Studio 更新到 3.0.0,将 Gradle 更新到 3.0.0 在模拟器 Genymotion (API 16-19) 上运行我的应用程序后崩溃。 错误: E/Andro
我是一名优秀的程序员,十分优秀!