用Android Studio 把C++转 SO文件 供unity调用

参考链接: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版本应该尽量用低版本,否则低版本安卓系统会报错

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值