最近维护 2.2.6 版本的andorid工程,google提示升级 libpng,
按照:http://xiao.terrygo.win/2016/06/17/Google-Play-warnings/所说的方法进行编译.so出包,
升级 libpng 库成功.记录一下:
原来cocos2dx版本: 2.2.6
使用cocos2dx版本: 3.11.1
操作步骤:
- 从cocos2d-x-3.11.1\external\png\include\android里面的 png.h, pngconf.h, pnglibconf.h
三个头文件复制到cocos2d-x-2.2.6\cocos2dx\platform\third_party\android\prebuilt\libpng\include下
(将原来的头文件都删掉). - 从cocos2d-x-3.11.1\external\png\prebuilt\android下面把 armeabi, armeabi-v7a, x86
这个3个文件夹下的 libpng.a 放到cocos2d-x-2.2.6\cocos2dx\platform\third_party\android\prebuilt\libpng\libs下
对应文件中.
注意:(不要复制3.11.1的 make文件,不要修改2.2.26的 make文件) - 在cocos2d-x-2.2.6\cocos2dx\platform\third_party\android\prebuilt目录下创建 zlib文件夹(注意一定要叫 zlib).
- 在2.2.6创建好的 zlib文件加下,参考 libpng目录下的格式:

5)从cocos2d-x-3.11.1\external\zlib\include里面把 zconf.h, zlib.h文件拷贝到
cocos2d-x-2.2.3\cocos2dx\platform\third_party\android\prebuilt\zlib\include下
6)从cocos2d-x-3.11.1\external\zlib\prebuilt\android下把armeabi,armeabi-v7a,x86这3个文件夹下的 libz.a拷贝到
cocos2d-x-2.2.3\cocos2dx\platform\third_party\android\prebuilt\zlib\libs对应目录 - 修改cocos2d-x-2.2.3\cocos2dx\platform\third_party\android\prebuilt\zlib\Android.mk
===================================================================
LOCAL_PATH := $(call my-dir)
include (CLEAR_VARS)**
**LOCAL_MODULE := cocos_zlib_static**
**LOCAL_MODULE_FILENAME := zlib**
**LOCAL_SRC_FILES := libs/(TARGET_ARCH_ABI)/libz.a
LOCAL_EXPORT_C_INCLUDES := (LOCAL_PATH)/include**
**include (PREBUILT_STATIC_LIBRARY)
- 修改cocos2d-x-2.2.3\cocos2dx\Android.m:
===================================================================
LOCAL_WHOLE_STATIC_LIBRARIES := cocos_libpng_static
LOCAL_WHOLE_STATIC_LIBRARIES += cocos_jpeg_static
LOCAL_WHOLE_STATIC_LIBRARIES += cocos_libxml2_static
LOCAL_WHOLE_STATIC_LIBRARIES += cocos_libtiff_static
LOCAL_WHOLE_STATIC_LIBRARIES += cocos_libwebp_static
LOCAL_WHOLE_STATIC_LIBRARIES += cocos_zlib_static
# define the macro to compile through support/zip_support/ioapi.c
LOCAL_CFLAGS := -Wno-psabi -DUSE_FILE32API
LOCAL_EXPORT_CFLAGS := -Wno-psabi -DUSE_FILE32API
include $(BUILD_STATIC_LIBRARY)
(call import-module,libjpeg)**
**(call import-module,libpng)
(call import-module,libtiff)**
**(call import-module,libwebp)
$(call import-module,zlib)
编译生成 .so,在打 apk的包
使用命令:
unzip -p pro.android.xx.apk | strings | grep "libpng"
查看你的包的 libpng版本.