cocos2.2.6版本更新libpng到1.6.16后,Android编译build_native.sh中断

  • /Users/zhanglinsen/workspace/support/android-ndk-r9/ndk-build -C /Users/zhanglinsen/workspace/bianfeng/sgscq1-china-client/projects/sgscq/proj.android.easy NDK_MODULE_PATH=/Users/zhanglinsen/workspace/bianfeng/sgscq1-china-client/projects/sgscq/proj.android.easy/…/…/…:/Users/zhanglinsen/workspace/bianfeng/sgscq1-china-client/projects/sgscq/proj.android.easy/…/…/…/cocos2dx/platform/third_party/android/prebuilt NDK_LOG=0 V=0
    Android NDK: WARNING:/Users/zhanglinsen/workspace/bianfeng/sgscq1-china-client/projects/sgscq/proj.android.easy/…/…/…/cocos2dx/Android.mk:cocos2dx_static: LOCAL_LDLIBS is always ignored for static libraries
    Android NDK: WARNING:/Users/zhanglinsen/workspace/bianfeng/sgscq1-china-client/projects/sgscq/proj.android.easy/…/…/…/scripting/javascript/bindings/Android.mk:scriptingcore-spidermonkey: LOCAL_LDLIBS is always ignored for static libraries
    make: Entering directory `/Users/zhanglinsen/workspace/bianfeng/sgscq1-china-client/projects/sgscq/proj.android.easy’
    SharedLibrary : libcocos2djs.so
    /Users/zhanglinsen/workspace/support/android-ndk-r9/toolchains/arm-linux-androideabi-4.6/prebuilt/darwin-x86_64/bin/…/lib/gcc/arm-linux-androideabi/4.6/…/…/…/…/arm-linux-androideabi/bin/ld: error: /Users/zhanglinsen/workspace/bianfeng/sgscq1-china-client/projects/sgscq/proj.android.easy/…/…/…/cocos2dx/platform/third_party/android/prebuilt/zlib/libs/armeabi/libz.a(deflate.o): multiple definition of ‘deflateSetDictionary’
    /Users/zhanglinsen/workspace/support/android-ndk-r9/toolchains/arm-linux-androideabi-4.6/prebuilt/darwin-x86_64/bin/…/lib/gcc/arm-linux-androideabi/4.6/…/…/…/…/arm-linux-androideabi/bin/ld: /Users/zhanglinsen/workspace/bianfeng/sgscq1-china-client/projects/sgscq/proj.android.easy/…/…/…/cocos2dx/platform/third_party/android/prebuilt/libMobClickCpp/libs/armeabi/libMobClickCpp.a(deflate.o): previous definition here

make: *** [obj/local/armeabi/libcocos2djs.so] Error 1

在升级limping到1.6.16的时候,同时升级了必须的zlib版本到1.2.8。
构建Android版本的时候,报cocos2dx/platform/third_party/android/prebuilt/zlib/libs/armeabi/libz.a(deflate.o): multiple definition of 'deflateSetDictionary’错误。

ndk版本为android-ndk-r9
@all 满地打滚求解决:6::6::6:

自己手动编译生成libpng库?我看了一下,2.2.6好像原来的libpng版本是1.2.46,升级到1.2.56就可以了吧,不用到1.6吧

老项目维护起来,真蛋疼

我更新的1.2.56编译成libpng库,好像cocos2dx 底层使用的接口不对了,还在研究中.

我直接是用cocos2d-x-3.11.1中最新的库

我是使用这个解决方案:http://xiao.terrygo.win/2016/06/17/Google-Play-warnings/
他的解决问题了,我的编译不成功。

:grin:我也试试这个

编译通过,就按照他说的方法,不知道跑起来有没问题

编译成功,可以运行,没问题的.

我把我的操作步骤写下来了:http://forum.cocos.com/t/libpng/37549

要是同时接了友盟SDK,记得升级友盟SDK版本。否则友盟SDK和zlib库起冲突,出现多个定义的情况。

用3.3引擎的png库 1.6.2 的版本, 不用升级zlib, 直接把头文件跟库文件替换就行了。

已经解决了啊:https://github.com/cocos2d/cocos2d-x/issues/15871