解决编译打包apk时自动删除第三方so文件或不完整问题
来源:互联网 发布:淘宝购物车源代码 编辑:程序博客网 时间:2024/05/22 00:08
背景:小黑开发cocos2dx游戏,开发完成,接某游戏平台SDK打包APK以实现游戏计费及平台相关功能。
方案1
步骤1:把SDK的jar文件都拷贝到安卓项目下的libs目录下, 把SDK的so文件都拷贝到安卓项目下的libs对应目录下(比如:libs/armeabi, libs/armeabi-v7a, libs/x86等)
编译打包结果:并没有把这些so文件打包进apk里面来,(原因:在编译项目的时候自动清除掉所有so文件),运行崩溃。
方案2
步骤1:把SDK所有so文件拷贝到jni/prebuilt(没有prebuilt就自已新建一个)目录下(比如:jni/prebuilt/armeabi, jni/prebuilt/armeabi-v7a, jni/prebuilt/x86等)
步骤2:修改jni/Android.mk文件
******************************************Android.mk******************************************
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
#本次操作修改开始
#增加 libxxxxx_1.so
include $(CLEAR_VARS)
LOCAL_MODULE := xxxxx_1
LOCAL_SRC_FILES := prebuilt/$(TARGET_ARCH_ABI)/libxxxxx_1.so
include $(PREBUILT_SHARED_LIBRARY)
#增加 libxxxxx_2.so
include $(CLEAR_VARS)
LOCAL_MODULE := xxxxx_2
LOCAL_SRC_FILES := prebuilt/$(TARGET_ARCH_ABI)/libxxxxx_2.so
include $(PREBUILT_SHARED_LIBRARY)
#增加 libxxxxx_3.so
include $(CLEAR_VARS)
LOCAL_MODULE := xxxxx_3
LOCAL_SRC_FILES := prebuilt/$(TARGET_ARCH_ABI)/libxxxxx_3.so
include $(PREBUILT_SHARED_LIBRARY)
LOCAL_MODULE := cocos2dcpp_shared
LOCAL_MODULE_FILENAME := libcocos2dcpp
...
******************************************Android.mk******************************************
编译打包结果:终于把所有so文件打包进apk里面来了,完美运行。
后来又有一次, 小黑又接另外一个平台的SDK,也是引用他们的so文件,小黑果断开心大胆使用上面所述方法,不料今非昔,这次打包进来的so文件有一些竟然是1kb的大小(原文件远大于1kb大小),明显so文件并不是完整的,运行果断崩崩崩,于是小黑又探索新方法
方案3
步骤1:新建android空项目(不需创建icon及activity),并设置为library项目(设置方法1:在创建的时候选中Mark this project as a library。设置方法2:右击项目->Properties->Android->Library,选中 Is Library)
步骤2:把SDK的jar文件都拷贝到新建的项目的libs目录下, 把SDK的so文件都拷贝到新建项目的libs对应目录下(比如:libs/armeabi, libs/armeabi-v7a, libs/x86等)
步骤3:在你的游戏项目里引用新建的lib项目(方法:右击项目->Properties->Android->Library->Add->选中新建的项目->返回到Library列表选中新建的项目->Apply->Ok)
编译打包结果:所有so文件打包进apk里面来了,而且这回大小和原文件一样,运行正常!
问题完美解决,希望有更好的方法。。。
- 解决编译打包apk时自动删除第三方so文件或不完整问题
- 解决Android使用第三方库.so自动删除问题
- 解决Android使用第三方库.so自动删除问题
- 解决Android使用第三方库.so自动删除问题
- 解决Android使用第三方库.so自动删除问题
- 在jni编程中解决第三方so文件编译时被删除的另类方法
- Android---apk打包libs自动删除第三方so问题解决(armeabi/armeabi-v7a等多平台so)
- Eclipse与Android源码编译过程(针对如何将第三方so文件打包进apk中)
- Eclipse与Android源码编译过程(针对如何将第三方so文件打包进apk中)
- Cocos2d-x 解决编译时自动删除.so的问题
- cocos打包apk,编译.so文件出错解决
- 解决在用ndk编译c++文件后libs/armeabi下的第三方so文件被删的问题
- android studio 打包第三方so库到apk
- ant手动编译apk,其中包括第三方Library和so文件
- windows下打包cocos2d-x之自动复制第三方so文件
- android源码编译apk集成第三方so库
- android源码编译apk集成第三方so库
- 引用第三方库So文件时,eclipse会自动把libs下arneabi文件里的so文件删除掉
- jquery ui tab 去除outline
- 用NumberPicker实现二联动滚轮选择
- JavaScript实现N个视频的切换
- [总结]软工文档验收
- 编译单个Java文件引入jar包
- 解决编译打包apk时自动删除第三方so文件或不完整问题
- 苹果加速审核的申请步骤
- jquery操作json数组的实现代码及常用函数
- IOS开发学习建议
- 【读书笔记】iOS网络-使用Bonjour实现自组织网络
- XCode将SingleView改变成空白模板
- Host、EndPoints及配置服务(二)
- javascript高级开发学习笔记十
- 【c++】公司职员系统