我在android上运行我的应用时遇到此错误:unable to lookup library path for, native render plugin support disabled
。我认为我错误地建立了共享库。
我希望从this repo构建源文件。我会说我的构建过程,也许有人可以发现我缺少的一步或做错了。
在此guide之后,我想到了:
Android.mk
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := libhydrogen
LOCAL_SRC_FILES := ..\hydrogen.c
include $(BUILD_SHARED_LIBRARY)
Application.mk
APP_PLATFORM := android-16
APP_OPTIM := release
APP_MODULES := libhydrogen
下一个我:
jni
文件夹中。ndk-build
。.so
文件夹中复制\libs
个文件,并将它们放在Unity中它们各自的文件夹中(即Hydrogen\Plugins\Android\arm64-v8a
)。 Here是我正在使用的c#包装器。
呼叫Hydrogen.Library.Initialize();
会给我这个错误。
Here是与此错误相关的完整日志。
在我的构建过程正确无误的情况下,.so
文件就可以了;还有什么可能导致这种情况发生?
编辑:我正在尝试为armeabi-v7a
和`x86构建。 Here是.so文件的详细信息,也许有些地方不正确?我不熟悉c,并且因为我从未听说过有人为Android构建此库,所以我想知道:c源文件中是否有与NDK构建过程不兼容的内容?
答案 0 :(得分:0)
本机库是由系统的本机链接程序加载的,在您的情况下是linux动态链接程序:ld.so
(有时会更改名称,所以我使用了该名称,因为您可以在具有该名称的文档。
为此,通常需要为Java虚拟机提供一个LD_LIBRARY_PATH
环境变量,以便它可以有效地dlopen(3)
。
考虑一下您的开发系统与目标系统有何不同……。您将轻松实现这一目标。
答案 1 :(得分:0)
这是Unity的一个错误!由于某些原因,在切换项目的目标平台时,我的某些文件将被损坏。奇怪的是,这似乎只发生在这个项目中,但是无论如何,(临时)解决方案是每当我切换平台时都重新导入plugin文件夹。