[英]Build an android apk from Unity3d project working with C/C++ dll
我用 C/C++ Dll 制作了一个 Unity3d 项目。所以首先我在 Visual Studio 中制作了 dll。
// mydll.cpp
#define EXPORT_API __declspec(dllexport)
extern "C" {
int EXPORT_API add(int a, int b)
{
return a+b;
}
}
我将这个 dll 添加到我的 Unity3D 项目中并调用
// C# script in Unity3D
public class TestDll : MonoBehaviour {
[DllImport("mydll")]
private static extern int add (int a, int b);
void Start() {
int a = add (100, 200);
}
}
这段代码运行良好,我在 Unity3D 编辑器中得到了正确的结果。
所以我把这个项目建到了android平台,得到了一个apk。 我在我的 android 设备上安装并运行了这个 apk,但该应用程序无法运行。 该应用程序未运行 Dll function。
怎么了? 我试图在谷歌和这里找到解决方案,但还没有得到任何东西。 请帮我。 谢谢。
您的dll必须位于Windows的Plugins文件夹中,它也适用于Editor。 对于Android,您必须在Plugins / Android文件夹中进行替换。 建立并写我好
LearnCocos2D 的评论是准确的。
要在 Android 上获取 Unity to DllImport() 共享库,您必须使用 NDK 编译器并为目标 Android 平台指定编译配置。 此外,Unity 要求您在构建设置中指定 Android 平台的架构,例如“arm v7”与“arm64”。
顺便说一句,在 Unity 2019.4 中——在 my.so 的检查器页面中选择“启动时加载”会引发“DLLNotFoundException”。
这个概述: https://docs.unity3d.com/2019.4/Documentation/Manual/AndroidNativePlugins.html
NDK 的 CMake 指南,帮助您开始正确编译: https://developer.android.com/ndk/guides/cmake
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.