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

时间:2021-12-27 11:16:47

cocos2d-x 项目在android平台上编译的时候会把libs/armeabi目录清空,

引用第三方so文件步奏:

1).在Android工程下的jni目录下新建prebuilt目录,并把要使用的第三方so库复制到该目录;

2).修改Android工程下的jni/Android.mk文件如下:

include $(CLEAR_VARS)

LOCAL_MODULE := casdkjni
LOCAL_SRC_FILES := prebuilt/libsmsiap.so
include $(PREBUILT_SHARED_LIBRARY)

(红色方格里面就是要添加的内容)

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

 

需要注意的是:如果有多个so文件时, LOCAL_MODULE := 名字(不能相同!!!!)

 

最近呢,遇到一个问题,接入第三方sdk,按照上面的步骤做了,但是还是支付的时候闪退!!!,后来对比发现lib/armeabi下的so文件有,但是大小却不对劲!!!(猜测复制的时候读取到哪里应该是断掉了)

解决办法:生成apk文件后,用压缩方式打开,再把so文件拖进去覆盖,然后再用加壳工具加壳就可以运行了,

还有一个解决办法:进入工程下找到 “build_native.py”文件,先让工程编译完后再打开该文件,删掉或者注释掉最后一行代码(删掉或者注释掉就不会经过ndk去编译,也就不会清空lib/ armeabi下的so文件,注:注释的话前面加”#“),再把so文件复制到lib/ armeabi下,打包成apk也是可以的