首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Unity: DllNotFoundException (Unity 2018.2;安卓)

Unity: DllNotFoundException (Unity 2018.2;安卓)
EN

Stack Overflow用户
提问于 2018-08-28 03:53:31
回答 1查看 1.2K关注 0票数 3

我有一个安卓本机库(C++代码库),名为:

libserverapp.so

我找不到Android版本来找到它:

"DllNotFoundException:服务器应用程序“

我使用的是内部构建系统,但是当我解析构建过程的输出时,我可以看到许多形式的调用:

android-ndk/toolchains/arm-linux-androideabi-4.6/prebuilt/windows/bin/arm-linux-androideabi-g++.exe -march=armv7-a

在构建我的安卓应用程序之后,我检查了生成的APK (重命名为.zip并解压缩),可以在这里看到我的库文件:

lib/armeabi-v7a/libserverapp.so

我可以确认"ARMv7“是安卓播放器设置中的目标架构,并且我可以通过以下方式访问C#中的库:

代码语言:javascript
运行
复制
[DllImport("serverapp", CallingConvention = CallingConvention.Cdecl)]
private static extern void run_sim(StringBuilder matchInput, StringBuilder results, int randomSeed);

我已经构建了一个C++代码的Windows DLL,可以在编辑器中使用,一切都很好。然而,当我转到Android时,.so找不到了。libserverapp.so的导入设置为:

平台:Android CPU: ARMv7路径:Assets/Plugins/Android/libserverapp.so类型:原生

假设最终的APK包含我期望的.so (lib/armeabi-v7a/),我假设我的Unity设置是正确的?另外,我没有使用IL2CPP来构建安卓系统。

最后,当我对库文件进行对象转储时(使用arm-linux-androideabi-objdump.exe),库文件的文件格式是"elf32-littlearm“。

我觉得这里的问题仅仅是找到.so,而不是它里面的功能。你知道这是怎么回事吗?

谢谢!

EN

回答 1

Stack Overflow用户

发布于 2018-08-29 05:14:58

我最终解决了这个问题。我提到的是使用内部构建系统。好吧,这里面似乎有个bug。我将其移植到官方的Android NDK makefile中,然后它就“正常工作”了。因此,在这种情况下,可以找到库,但其内容无效。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52046144

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档