我有一个带有opencv库的Android应用程序用于图像 处理。另外,我的' jni '文件夹下有一个cpp文件。它 在更改此cpp文件之前,我的工作非常顺利。然后,变化是 没有反映在构建中。我怎样才能构建我的cpp文件?但是,我 尝试了以下内容;
Eclipse-> Window-> preferences-> Android-> NDK我浏览了ndk位置路径。
转到我的项目 - >偏好设置 - >添加NATIVE SUPPORT然后我点击完成按钮。
之后,我可以在项目首选项中看到C / C ++构建。
在C / C ++ build-> Chain Tool Editor选项卡下,我选择了G C编译器和G C ++编译器。
C / C ++ General->路径和符号,我将 C:\ Users \ casper \ Desktop \ OpenCV-2.3.1 \ include 添加到路径和符号中。
C / C ++ General->预处理器包含路径..->我检查了 CDT GCC内置编译器设置复选框。
之后我运行我的应用程序,但我有一些麻烦。在我的cpp文件中,取消包含include标记的内容。
例如。符号'cv'无法解析
我不知道我必须做什么重建cpp文件/ jni。或者我必须在不同平台上对代码进行一些更改,例如:visual c ++,QT。 我的最后一个问题是QT是Android NDK的替代品(用于处理jni,我的意思是如果我在QT上编写代码,那么QT可以为jni构建这些代码。)
答案 0 :(得分:0)
以下设置适用于我:
Android.mk
(在文件夹jni
中)并设置文件OpenCV.mk
的路径(来自OpenCV for Android):就我而言:
C:\DP\OpenCV-2.4.8-android-
sdk\sdk\native\jni\OpenCV.mk
整个Android.mk
将如下所示:
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
include C:\DP\OpenCV-2.4.8-android-sdk\sdk\native\jni\OpenCV.mk
LOCAL_MODULE := native_sample
LOCAL_SRC_FILES := App_02_28.cpp
LOCAL_LDLIBS += -llog -ldl
include $(BUILD_SHARED_LIBRARY)
将System.loadLibrary("native_sample");
添加到方法
onManagerConnected
中的 MainActivity.class
; (因为我们在文件"native_sample"
的第一步中使用了名称Android.mk
)
整个onManagerConnected
将如下所示:
private BaseLoaderCallback mLoaderCallback = new BaseLoaderCallback(this) {
@Override
public void onManagerConnected(int status) {
switch (status) {
case LoaderCallbackInterface.SUCCESS:
{
System.loadLibrary("native_sample");
Log.i(TAG, "OpenCV loaded successfully");
mOpenCvCameraView.enableView();
} break;
default:
{
super.onManagerConnected(status);
} break;
}
}
};
Android tools -> Add native support
Properties -> C/C ++ General -> Paths and Symbols
上设置Includes
以下路径。就我而言,它是以下内容:$ {NDKROOT} /平台/机器人-9 /弓形臂的/ usr /包括
$ {NDKROOT} /来源/ CXX-STL / GNU-的libstdc ++ / 4.6 /包括
$ {NDKROOT} /来源/ CXX-STL / GNU-的libstdc ++ / 4.6 /库/ armeabi-V7A /包括 C:\ DP \的OpenCV-2.4.8-Android的SDK \ SDK \天然\ JNI \包括
JNI
C:\ DP \ NDK \机器人-NDK-R9C \平台\机器人-8 \拱形臂的\ usr \包括
C:\ DP \ NDK \机器人-NDK-R9C \源\ CXX-STL \ GNU-的libstdc ++ \ 4.6 \包括\向后
C:\ DP \ NDK \机器人-NDK-R9C \源\机器人\ native_app_glue
C:\ DP \ NDK \机器人-NDK-R9C \平台\机器人-19 \拱形臂的\ usr \包括
C:\ DP \ NDK \机器人-NDK-R9C \工具链\臂-Linux的androideabi-4.6 \预建\ Windows \ lib中\ GCC \ ARM-Linux的androideabi \ 4.6 \包括
C:\ DP \ NDK \机器人-NDK-R9C \工具链\臂-Linux的androideabi-4.6 \预建\ Windows \ lib中\ GCC \ ARM-Linux的androideabi \ 4.6 \包括固定
当然,您必须将{NDK和OpenCV SDK存储在磁盘上的路径替换为C:\DP\NDK\
。
... PATH
的值与我设置系统PATH
的值相对应。
Index - Rebuild