我通过JNI在我的Android应用程序中使用OpenCV。libopencv_java.so太大了,大约有7M。显然,我只需要几个库。我检查了OpenCV4Android中的库,发现了一些静态库,比如libopencv_core.a。这是我用Android.mk编写的新代码,其中包含了必要的OpenCV库。我还介绍了libopencv_core.a、libopencv_highgui.a、libopencv_imgproc.a和一些第三方库,它们是: liblibjasper.a、liblibjpeg.a、liblibpng.a、liblibtiff.a。
include $(CLEAR_V
我正在创建一个库,用于在对图像进行for预处理之前检查它是否模糊。我正在使用代码片段执行so.When操作。我尝试构建代码时,它显示了一个未定义的引用错误:
/home/blutech/android-ndk-r9/toolchains/arm-linux-androideabi-4.6/prebuilt/linux- x86/bin/../lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-androideabi/bin/ld: ./obj/local/armeabi/objs/blur-jni/blur-jni.o: in f
我开发了一个Android应用程序,它需要是一个共享库。我已经在Linux (使用gcc)中创建了相同的库,所以我想在Android (ARM处理器)中编译相同的共享库。但NDK只支持JNI。现在我想构建一个没有直接JNI交互的单独的共享库。我有很多C文件和头文件,所以我不能写所有的JNI。我想为ARM处理器构建我的库。我该怎么做呢?
my stuture is
----->JNI
---->myfile.c(jni c code)
----->android.mk(here i call my two shared lib)
fol
我想构建expolid代码( )
Android.mk
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := zergRush
LOCAL_SRC_FILES := zergRush.c
base :=E:\0.Android\system\core
#//base path include the android source code. but i forget the version .maybe 4.0.1
LOCAL_C_INCLUDES :=$(base)/include/
LOCAL_LDLIBS
我在stackoverflow上四处寻找类似的问题,但我找到的解决方案似乎都不适合我。我在Linux/Ubuntu机器上。我只是在练习JNI,但是我得到了这个错误:
Exception in thread "main" java.lang.UnsatisfiedLinkError: nativetest.sayHello(Ljava/lang/String;)Ljava/lang/String;
at nativetest.sayHello(Native Method)
at nativetest.main(nativetest.java:8)
我已经提供了我的.c、.h和.j
我以前使用过一个JNI库,由于某些原因(我不知道有任何修改),我不能再使用它了,因为我得到了以下错误:
线程"main“中的异常: de.ifi.lmu.sommerd.ftsserver.jni.IndexJNI.loadIndex(Ljava/lang/String;)V at de.ifi.lmu.sommerd.ftsserver.jni.IndexJNI.loadIndex(Native方法)
下面是我的测试设置:
package de.ifi.lmu.sommerd.ftsserver.jni;
public class IndexJNI {
stati
在Java代码中:
System.loadLibrary("twolib-second");
int z = add(1, 2);
public native int add(int x, int y);
first.cpp:
#include "first.h"
int first(int x, int y) {
return x + y; }
首先.h:
#ifndef FIRST_H
#define FIRST_H
extern int first(int x, int y);
#endif /* FIRST_H */
附