参考链接:https://blog.csdn.net/cqjianx/article/details/79626374
使用的Android Studio 版本是3.5.2,使用CMakeLists.txt的方式.
1.新建Native c++工程
2.确认是已经安装了ndk , File->ProjectStructure,没有的话到SDKManager下载
3.新建Module
4.新建JIN文件夹存放C++文件,并新建CMake文件,把工程自带的CMake文件内容复制过来并做修改
5.新建Java类,代码如下
6.修改build.gradle,添加以下两处
7.直接build,然后再build/intermediates/cmake/debug/obj/armeabi-v7a 下找到so文件,复制到Unity工程的Plugins/armeabi-v7a目录下,并修改设置如下:
8.测试脚本内容如下:
using UnityEngine;
using System.Runtime.InteropServices;
using System;
public class TestSo : MonoBehaviour {
[DllImport("TestSo", CharSet = CharSet.Ansi)]
public static extern IntPtr MyLog([MarshalAs(UnmanagedType.LPStr)]string content);
private string m_ShowContent;
void OnGUI() {
if (GUI.Button(new Rect(100, 100, 200, 200), "Test so")) {
m_ShowContent = Marshal.PtrToStringAnsi(MyLog(" hello world !"));
}
GUI.Label(new Rect(100, 50, 200, 50), m_ShowContent);
}
}
9.打包的安卓平台测试
补充:build.gradle的sdk版本应该尽量用低版本,否则低版本安卓系统会报错