Cocos2dx如何引用第三方SO文件(Android NDK)

做项目的过程中发现,引用第三方的库lib3rdsdk.so,当直接把lib3rdsdk.so放进armeabi文件夹里,会被删除掉。查网上资料都说的不全,经过实验,最简单的方法就是在jni下的android.mk里加下面3-7行就可以,要放最前面,放后面有可能不行哦,因为编译路径有可能会被改掉。

其中prebuilt/$(TARGET_ARCH_ABI)中的prebuilt就是jni里新建的prebuilt文件,其实建不建无所谓,prebuilt里面有4个文件夹:armeabi、armeabi-v7a、mips、x86,每个文件夹里放着不同架构的lib3rdsdk.so库, $(TARGET_ARCH_ABI)则是按cpu架构自动选择armeabi、armeabi-v7a、mips、x86这些架构中的库,默认只会复制armeabi中的libtxpay.so库,比如需要多复制armeabi-v7a中的库,则需要在application.mk中添加APP_ABI := armeabi armeabi-v7a后,则会同时复制armeabi armeabi-v7a的库

view source

01 LOCAL_PATH := $(call my-dir)
02  
03 include $(CLEAR_VARS)
04  
05 LOCAL_MODULE    := 3rdsdk
06  
07 LOCAL_SRC_FILES := prebuilt/$(TARGET_ARCH_ABI)/lib3rdsdk.so
08  
09 include $(PREBUILT_SHARED_LIBRARY)
10  
11 include $(CLEAR_VARS)
12  
13 LOCAL_MODULE := game_shared
14  
15 LOCAL_MODULE_FILENAME := libgame
16  
17 #traverse all the directory and subdirectory
18  
19 define walk
20  
21   $(wildcard $(1)) $(foreach e, $(wildcard $(1)/*), $(call walk, $(e)))
22  
23 endef
24  
25 #traverse Classes Directory
26  
27 ALLFILES = $(call walk, $(LOCAL_PATH)/../../Classes)
28  
29 FILE_LIST := hellocpp/main.cpp
30  
31 FILE_LIST += $(LOCAL_PATH)/../../Classes/helloworld.cpp
32  
33 FILE_LIST += $(filter %.cpp, $(ALLFILES))
34  
35 FILE_INCLUDES := $(shell find $(LOCAL_PATH)/../../Classes -type d)
36  
37 #source file will be compiled
38  
39 LOCAL_SRC_FILES := $(FILE_LIST:$(LOCAL_PATH)/%=%)                 
40  
41 LOCAL_C_INCLUDES := $(LOCAL_PATH)/../../../external/Box2D/ \
42  
43   $(FILE_INCLUDES) \
44  
45  
46 LOCAL_WHOLE_STATIC_LIBRARIES := cocos2dx_static cocosdenshion_static cocos_extension_static box2d_static
47  
48 include $(BUILD_SHARED_LIBRARY)
49  
50 $(call import-module,CocosDenshion/android) \
51  
52 $(call import-module,cocos2dx) \
53  
54 $(call import-module,extensions) \
55  
56 $(call import-module,external/Box2D)
时间: 2024-10-07 22:27:05

Cocos2dx如何引用第三方SO文件(Android NDK)的相关文章

APK中引用第三方库文件

注意以下操作是在源码中进行,即修改Android.mk,并非借助IDE(AndroidStudio)的情形. 引用第三方JAR包 1,在源Android.mk里面加参数,使其编译为JAR包,然后mm编译 ... LOCAL_MODULE_CLASS := JAVA_LIBRARIES include $(BUILD_JAVA_LIBRARY) ... 2,提取class.jar选用 把common下面的jar包文件(out\target\common\obj\JAVA_LIBRARIES\xxx

Android NDK编译本地文件以及引用第三方so文件

LOCAL_PATH := $(call my-dir)include $(CLEAR_VARS)LOCAL_LDLIBS :=-llogLOCAL_MODULE := DeviceAPILOCAL_SRC_FILES := DeviceAPI.c \ include $(BUILD_SHARED_LIBRARY) include $(CLEAR_VARS)LOCAL_MODULE := libbarcodereaderLOCAL_SRC_FILES := libbarcodereader.so

Android Studio工程引用第三方so文件

应用程序二进制接口(Application Binary Interface)定义了二进制文件(尤其是.so文件)如何运行在相应的系统平台上,从使用的指令集,内存对齐到可用的系统函数库.在Android 系统上,每一个CPU架构对应一个ABI:armeabi,armeabi-v7a,x86,mips,arm64- v8a,mips64,x86_64. so文件和jar包存放到工程的libs目录下.p.s.另外,可以将apk解压出来,查看lib目录,也能分析该apk的so文件目录. 使用 app源

Vs 引用第三方DLL文件 版本不一致问题 (npoi与memcached中的ICSharpCode.SharpZipLib版本冲突的解决方案)

最近在 做 MailChimp 与网站功能 集成时,发现 MailChimp 2API 中的 MailChimp.dll  中的依赖项 SerivceStack.Text.dll (版本为3.9.71.0)与我们WebSite 中的 ServiceStack.Text.dll (版本为4.0.0.0)的版本相冲突,当我们 写了  MailChimpManager mc = new MailChimpManager(ApiKey); 时 提示 无法加载 SerivceStack.Text.dll

cocos2d-x Android工程导入第三方so文件

cocos2d-x 项目在android平台上编译的时候会把libs/armeabi目录清空, 引用第三方so文件步奏: 1).在Android工程下的jni目录下新建prebuilt目录,并把要使用的第三方so库复制到该目录: 2).修改Android工程下的jni/Android.mk文件如下(红色方格里面就是要添加的内容):

mapreduce引用第三方jar

要想让mapreduce程序引用第三方jar文件, 可以采用如下方式: 通过命令行参数传递jar文件, 如-libjars等; 直接在conf中设置, 如conf.set(“tmpjars”,*.jar), jar文件用逗号隔开; 利用分布式缓存, 如DistributedCache.addArchiveToClassPath(path, job), 此处的path必须是hdfs, 即自己讲jar上传到hdfs上, 然后将路径加入到分布式缓存中; 第三方jar文件和自己的程序打包到一个jar文件

cocos2d-x 3.0 引用第三方库 及编译成apk时android mk文件写法

cocos2d-x 3.0 中,如果你需要使用CocosStudio.Extensions扩展库 等等,都需要自己手动添加. 添加步骤如下:(比如说现在我要添加libExtensions,libCocosStudio , libGUI) 1.添加附加项目 右击解决方案--->添加现有项目--->添加:项目目录\cocos2d\extensions\proj.win32\libExtensions,然后你会发现左边多了一个libExtensions扩展库 右击解决方案--->添加现有项目-

Android NDK开发指南---Application.mk文件和android.mk文件

https://android.googlesource.com/platform/development/+/donut-release/ndk/docs/OVERVIEW.TXT https://android.googlesource.com/platform/ndk/+/4e159d95ebf23b5f72bb707b0cb1518ef96b3d03/docs/ANDROID-MK.TXT https://android.googlesource.com/platform/ndk/+/4

【转载】cocos2dx 中 Android NDK 加载动态库的问题

原文地址:http://blog.csdn.net/sozell/article/details/10551309 cocos2dx 中 Android NDK 加载动态库的问题 闲聊 最近在接入各个平台的SDK,遇到了不少问题,也从中了解了不少知识,之前一直觉得没啥好写的,毕竟做了4个月的游戏开发,也没有碰上什么真正的大问题,cocos2dx的引擎包得也很好,能让人把大部分时间都关注在游戏逻辑.效果的处理上,当然,之前的libevent还是小坑一下,但是和后来遇到的相比,也算不上什么了. 我最