繁体   English   中英

使用 C/C++ dll 从 Unity3d 项目构建一个 android apk

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM