gpt4 book ai didi

Android Studio C++ NDK 库示例

转载 作者:搜寻专家 更新时间:2023-11-01 09:34:29 27 4
gpt4 key购买 nike

我想下载一些使用 C 或 C++ 的 Android Studio NDK 项目的工作示例,这些示例将被编译为 .so 库(或我可以从中提取 .so 的 APK)。我已经尝试过使用 Android.mk 构建的 ndkbuild 以及使用 CMakeLists.txt 的 CMake,Windows 上的官方和非官方教程...

如果我从同一个应用程序 (java) 在 android 上尝试它们,它正在工作,但我想在 android 上的 Unity3D 中使用 NDK,但我不断收到 DllNotFoundException。

我上传了我的 AndroidUnity项目到github。

最佳答案

首先,here是您正在寻找的示例 Android 项目插件。

知道如何自己做这件事非常重要。

这在以前很难做到,但最新的 Android Studio 现在可以更轻松地使用 C/C++ 或轻松生成 .so 库。将 Android Studio 更新到最新版本,然后按照以下步骤创建 C++ 插件。

1.在Android Studio中新建一个项目

2.选中Include C++ suport以启用C++。

enter image description here

3。在下拉菜单中,选中 C++ 标准 下拉菜单中的 C++ 11。您将需要 C++ 11 才能实际使用最有用的 C++ 功能。此外,如果需要,请启用异常或 frtti。

enter image description here

原来如此。

构建插件时:

调试库应该在:

\app\build\intermediates\cmake\debug\obj\

发布库应该在:

\app\build\intermediates\cmake\debug\obj\

如果你只看到调试而不是插件的发布版本,检查here了解如何让它出现。


在 Android 上出现 DllNotFoundException 的可能原因:

1。您没有将 C/C++ 函数包装在 extern "C" 周围.您必须为 .cpp 文件中的每个函数执行此操作,或者在 .h 文件中的函数中执行此操作。

2.你把插件放在了错误的Unity文件夹中。

<ProjectDirectory>\app\build\intermediates\cmake\release\obj 生成的 armeabi-v7a 和 x86 插件应该放在Assets\Plugins\Android\libs\armeabi-v7a\Assets\Plugins\Android\libs\x86\在 Unity 项目中。

确保拼写正确。参见 this有关这方面的更多信息。

3。您从 C# 端错误地加载了它。

假设插件的名称是 libScreenshot.a,包括 lib 前缀,也添加 .a加载时。

[DllImport("Screenshot", CallingConvention = CallingConvention.Cdecl)]
public static extern void takeScreenshot();

关于Android Studio C++ NDK 库示例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44509848/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com