一定要在Linux或者Mac环境下 才能打包android的第三方包
- 一定要在Linux或者Mac环境下 才能打包android的第三方包
 - 一定要在Linux或者Mac环境下 才能打包android的第三方包
 - 在电脑上安装个虚拟机来完成以下
 - 需要的工具有 
  
- cmake3 yum install cmake3
 - ndk-r15c https://dl.google.com/android/repository/android-ndk-r15c-linux-x86_64.zip (根据sh文件内的版本所下载,我的版本为r15c我就去官网下载r15c,r10e我这边测试是不行的)
 - android sdk https://dl.google.com/android/repository/sdk-tools-linux-3859397.zip?utm_source=androiddevtools&utm_medium=website
 - Xlua源码包
 
 - 配置好NDK和SDK
 - 通过 source .bash_profile 进行环境配置的实时更新
 - 生成后把Android文件夹覆盖到unity项目的 assets/plugins/android下
 -  下载xLua 源代码 https://github.com/Tencent/xLua.git 
  
- 其中的build文件夹解压至Unity项目的根目录下
 
 - 下载第三方库的源码 解压至build文件夹
 - 修改build里面的CMakeLists.txt 
  
- 在mark_as_advanced下面添加扩展
 
 
#begin lua-xxx
set (XXX_SRC xxx/xxxx.c)
set_property(
SOURCE ${XXX_SRC}
APPEND
PROPERTY COMPILE_DEFINITIONS
LUA_LIB
)
set (THIRDPART_SRC ${THIRDPART_SRC} ${XXX_SRC})
#end lua-xxx 
 
这里的xxx为Lua包名
- 在xlua下找到LuaDLL.cs
 -  
#if UNITY_IPHONE && !UNITY_EDITOR const string LUADLL = "__Internal"; #else const string LUADLL = "xlua"; #endif在上面代码下添加引进新的模块
 -  
[DllImport(LUADLL, CallingConvention = CallingConvention.Cdecl)] public static extern int luaopen_模块名(System.IntPtr L); [MonoPInvokeCallback(typeof(LuaDLL.lua_CSFunction))] public static int Load模块名(System.IntPtr L) { return luaopen_模块名(L); } - 在LuaEnv.cs的文件下找到 
  
- AddBuildin(XXX,XXXX)
 - 添加 AddBuildin("引入包名", LuaDLL.Lua.Load模块名); 
    
- 引入包名:require "包名"
 
 
 
- 在Lua代码中即可使用
 - local a = require “包名”
 










