仰天大笑出门去,我辈岂是蓬蒿人。这篇文章主要讲述如何将外部库集成到Cocos Android项目中相关的知识,希望能为你提供帮助。
我想制作一个用C ++构建的游戏,并使用Lua进行脚本编写。为此,我制作了自己的Lua Engine。对于Windows,我只包括Lua Header文件,Lua库和Lua dll。这完全没问题。
现在我想为android导入相同的项目。我面临的问题是,在构建时,它会为我所做的所有Lua调用提供“未定义的引用”。它能够包含Lua头文件,但它仍然没有编译。
编辑1:现在我认为这是因为没有链接lib和.dll文件。我知道Android不会将dll和lib文件用作Windows。它使用.so文件。但谁能建议我如何构建.so文件!?
编辑2:所以我做了更多的研究,最后建立了.so文件。但现在我有四套库:ar64-v8a,armeabi-v7a,x86,x86-64。谁能告诉我这些库之间有什么区别,以及如何将它们实际用到我的主要cocos项目中?
#luaLIB_VERSION:=lua-5.2.2LOCAL_PATH:= $(call my-dir)
LIB_ROOT_REL:= ../../$(LIB_VERSION)
LIB_ROOT_ABS:= $(LOCAL_PATH)/../../$(LIB_VERSION)include $(CLEAR_VARS)LOCAL_CFLAGS := -O2 -Wall -DLUA_COMPAT_ALL -D"getlocaledecpoint() ='.'"LOCAL_SRC_FILES :=
<
ALL LUA SOURCE FILES INCLUDED HERE>
LOCAL_C_INCLUDES +=
$(LIB_ROOT_ABS)/src LOCAL_LDLIBS += -llogLOCAL_MODULE := libluainclude $(BUILD_SHARED_LIBRARY)
答案【如何将外部库集成到Cocos Android项目中】您拥有的四个不同的文件适用于四种不同的体系结构 -ar64-v8a,armeabi-v7a,x86,x86-64。根据您计划支持的体系结构,您必须在libs下添加相应的文件夹,并将相应的.so文件复制到该文件夹??中。因此,如果您计划仅支持armeabi-v7a,则必须在libs文件夹中创建一个名为armeabi-v7a的文件夹,并将armeabi-v7a so文件添加到其中。
推荐阅读
- 我们如何将CMake或ndk-build集成到Android Studio 3.0.1中( Gradle版本是4.1,android插件版本3.0.1)
- UINavigationController appDelegate UIViewController以编程方式
- 从AppDelegate中访问NavigationController指向的初始视图
- 是否可以在不使用继承的情况下在viewDidAppear上调用某些代码
- UIViewController viewDidLoad vs. viewWillAppear(什么是适当的分工())
- Swift - 从viewController访问AppDelegate窗口
- mcapply(所有计划的核心在用户代码中遇到错误)
- Android studio ConstraintLayout大小调整问题
- 使用具有目的为“ android.rfid.INPUT”的意图的sendBroadcast