【发布时间】:2013-09-24 21:24:03
【问题描述】:
所以,看起来有很多像我这样的问题,但不确定它们中的任何一个都与我的问题有关。好的。我有一个使用 SDK 作为引用库的 Android 项目。 SDK 包含 C++,所以我使用的是 android-ndk-r9 库。我在我的 Android 项目中引用的 SDK 是一个 JNI 库(Oooooo - 可怕的东西)。哦,是的,别让我忘记提到 armeabi-v7a(这似乎是另一个可怕的主题)。执行此行时出现我的错误:
System.loadLibrary("tfp_jni");
tfp_jni 实际上是我的 SDK 库项目的 libs 文件夹中 armeabi-v7a 文件夹下的 libtfp_jni.so 文件。该 SDK 库项目包含一个 Android.mk 文件。我认为代码没有进入那里。但这里是那个 .mk 文件的内容:
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := tfp-prebuilt
LOCAL_SRC_FILES := libs/$(TARGET_ARCH_ABI)/libtfp_jni.so
LOCAL_EXPORT_C_INCLUDES := $(LOCAL_PATH)/include
include $(PREBUILT_SHARED_LIBRARY)
然后在我的 Android 项目中,我有一个 jni 文件夹,其中包含一个 Android.mk 和一个 Application.mk。以下是内容:
Android.mk
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
OPENCV_INSTALL_MODULES:=on
OPENCV_INSTALL_CAMERA:=off
include $(INNERID_ANDROID_ROOT)/Android.mk
include $(OPENCV_ANDROID_ROOT)/sdk/native/jni/OpenCV.mk
Application.mk
APP_STL := gnustl_static
APP_CPPFLAGS := -frtti -fexceptions
APP_ABI := armeabi-v7a
APP_PLATFORM := android-14
环境变量
路径和符号 - 包括
除了显示项目文件夹的源位置和输出位置之外,所有其他选项卡都是空的。
Android 项目和首选项
我尝试了 Stackoverflow 上类似问题的各种其他答案,但均未成功。如果您还有其他需要查看的内容,请告诉我,我会尽快提供更多信息。
新图片
更正! apk 位于 verify-demo-nolic 项目 /bin 文件夹中。引用库 tfp_java.jar 是 SDK 库项目。您可以从 Finder 中看到 .so 文件位于库中。这有帮助吗?
【问题讨论】:
-
.apk 文件只是花哨的 zip 文件,因此请使用 zip 文件工具打开 .apk 文件并查看 .so 文件是否正在进入 apk。
-
@ChrisStratton - 对不起! apk 在哪里?
-
从内存中,也许在项目树下的 bin/ 文件夹中,如果您最近完成了构建安装。
-
@ChrisStratton - 不,它不存在。
-
好的,现在我们必须找出原因。你运行 ndk-build 了吗?或者您是否正在使用一些花哨的前端工具来编译库并将其复制到项目树中?
标签: java android c++ eclipse android-ndk