在Unity项目中使用依赖于另一个NDK构建的库时出错
Error when using a NDK built Library which depend on another one in a Unity project
我想创建一个本地C++程序并在Android上使用它,我使用Android NDK学会了这样做。我甚至创建了一个测试插件(lib*.so),它运行得很好。但当我创建了一个依赖于第一个插件的插件(意味着用NDK创建的另一个共享库),并在Unity项目中使用它时,它没有起作用。我有这个错误:
E/Unity ( 4719): Unable to find MyLib
I/Unity ( 4719): DllNotFoundException: MyLib
I/Unity ( 4719): at (wrapper managed-to-native) TestDLLScript:Foo ()
I/Unity ( 4719): at TestDLLScript.Start () [0x00000] in <filename unknown>:0
I/Unity ( 4719):
I/Unity ( 4719): (Filename: Line: -1)
I/Unity ( 4719):
这是Unity的问题吗?还是我需要遵循一些程序才能做到这一点?
这里还有我的插件制作文件,尽管我不认为问题来自它(因为它构建时没有任何错误或警告):
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := TestDLL
LOCAL_SRC_FILES := libs/$(TARGET_ARCH_ABI)/libTestDLL.so
LOCAL_EXPORT_C_INCLUDES := $(LOCAL_PATH)/source
include $(PREBUILT_SHARED_LIBRARY)
include $(CLEAR_VARS)
LOCAL_MODULE := MyLib
LOCAL_SRC_FILES += MyLibrary.cpp
LOCAL_SHARED_LIBRARIES += TestDLL
include $(BUILD_SHARED_LIBRARY)
您的lib*.so
必须为所有ABI而不是仅为一个ABI构建。因此,看看您为库构建的ABI,然后确保您的应用程序是为相同的ABI构建的。
在最终的apk文件中,你很有可能没有你的库。看看apk内部。
相关文章:
- 如何使用ndk-build.cmd构建Android.so文件
- 对于哪些 ABI,我可以使用 NDK v10e 构建 apk?
- 我在 ndk 中构建文件时遇到错误 android.mk
- 指定 NDK 构建的目标架构
- NDK 构建中的异常"error: expected ';' after top level declarator"
- 为什么当我的项目是使用 Android NDK r16 构建时,我会收到来自 Android NDK r11 的错误消息
- '在使用安卓 NDK r10e 构建静态库时无效使用'auto'
- 我需要在 Android Studio 中构建 NDK. 但它返回一个错误
- 如何修复安卓工作室中的NDK构建错误
- Android NDK 中的预构建工具链和自定义工具链编译器之间的差异
- 如何将静态库链接到NDK Android构建中用作本机库的源
- Android NDK构建:指定C和C 的警告级别
- NDK - 包含一个预构建的库,并在 Android 项目中调用本机函数
- 我无法获得由 Clang 构建的优化 NDK 应用程序的调用堆栈
- 在Android NDK项目中使用webrtc-58 - 使用QT构建时"Undefined reference to CopyOnWriteBuffer"
- 如何禁用某些构建变体的Android NDK构建
- Android NDK:如何为ARM64-V8A构建最小值= 19
- 如何解决安卓工作室中NDK构建"undefined reference"问题?
- 在 Windows 上使用 Android ADT 构建 NDK 应用程序
- 将tess-two(Tesseract Tools for Android)库集成到Android工作室并构建ndk的问