【发布时间】:2016-01-20 08:31:59
【问题描述】:
我是使用 Android 原生方法的新手。即使我已确保将带有正确 *.so 文件的 armeabi、armeabi-v7a、mips 和 x86 正确放入文件夹中,但仍出现以下错误。
10-21 18:51:36.685: E/AndroidRuntime(24277): java.lang.UnsatisfiedLinkError: Native method not found: com.arzap.mimas.MimasJNI.MIMAS_LoadModel:(Ljava/lang/String;)V
10-21 18:51:36.685: E/AndroidRuntime(24277): at com.arzap.mimas.MimasJNI.MIMAS_LoadModel(Native Method)
10-21 18:51:36.685: E/AndroidRuntime(24277): at com.arzap.mimas.ar.MainActivity.onCreate(MainActivity.java:36)
10-21 18:51:36.685: E/AndroidRuntime(24277): at android.app.Activity.performCreate(Activity.java:5451)
10-21 18:51:36.685: E/AndroidRuntime(24277): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1093)
10-21 18:51:36.685: E/AndroidRuntime(24277): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2377)
10-21 18:51:36.685: E/AndroidRuntime(24277): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2471)
10-21 18:51:36.685: E/AndroidRuntime(24277): at android.app.ActivityThread.access$900(ActivityThread.java:175)
10-21 18:51:36.685: E/AndroidRuntime(24277): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1308)
10-21 18:51:36.685: E/AndroidRuntime(24277): at android.os.Handler.dispatchMessage(Handler.java:102)
10-21 18:51:36.685: E/AndroidRuntime(24277): at android.os.Looper.loop(Looper.java:146)
10-21 18:51:36.685: E/AndroidRuntime(24277): at android.app.ActivityThread.main(ActivityThread.java:5602)
10-21 18:51:36.685: E/AndroidRuntime(24277): at java.lang.reflect.Method.invokeNative(Native Method)
10-21 18:51:36.685: E/AndroidRuntime(24277): at java.lang.reflect.Method.invoke(Method.java:515)
10-21 18:51:36.685: E/AndroidRuntime(24277): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1283)
10-21 18:51:36.685: E/AndroidRuntime(24277): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1099)
10-21 18:51:36.685: E/AndroidRuntime(24277): at dalvik.system.NativeStart.main(Native Method)
如下是我加载 .so 文件的方式:
static{
try {
System.loadLibrary("libMimasAr3D");
} catch (UnsatisfiedLinkError use) {
Log.e("JNI", "WARNING: Could not load libMimasAr3D.so");
}
}
额外的东西(我认为这不是主要问题)?
在我加载库的同一个文件中,我有这个方法:
public static native void MIMAS_LoadModel(int ppModel);
主Activity.java:
//Description: Load the model.
//Input: pModelPath - A file path to the saved model.
//Return: A pointer to the object of the model. NULL if loading is failed.
//Load image to MIMAS_SDK
MimasJNI.MIMAS_LoadModel("models/model.bin");
请帮我解决这个问题。提前致谢!
【问题讨论】:
-
尝试放入jni文件夹
-
谢谢。我已经将我的库放入 jni 文件夹中,但仍然无法正常工作。
-
你能把你的项目结构,截图贴出来吗?
标签: android opencv java-native-interface shared-libraries native