cocos2d-2.1rc0-x-2.1.3运行libcurl返回CURLE_COULDNT_CONNECT(7)

背景

      最近在做一个cocos2dx+lua的安卓项目,做法是用cocos2dx提供的批处理文件生成安卓工程,然后在将C/C++代码生成so库,最后用Eclipse运行打包。开发是在VS2010创建一个窗口,方便了调试,然后将代码编成SO。VS上调试可以断点,但是Eclipse真机的时候就只能通过log了,不过好在log能用,要是log都不能用就惨了。。


问题
      网络部分使用了cocos2dx自带的libcurl库,简单易用,功能强大。开始在VS环境下的时候一切正常,但是当我把其编译成SO再用Eclipse打包的时候发现curl_easy_perform()接口返回的是CURLE_COULDNT_CONNECT。

解决办法
      各种资料各种查找,发现大多数给的都是一个方案,在Manifest文件中添加这个网络权限:<uses-permission android:name="android.permission.INTERNET" />,但是照做之后仍没有效果(事后经过验证,这个权限不添加的确会返回无法连接的问题)。说明还有其他原因。
      仔细查看Cygwin编译输出的log发现有这么一行:/cygdrive/d/adt-bundle-windows-x86-20130219/android-ndk-r8b/build/core/add-application.mk:128: Android NDK: WARNING: APP_PLATFORM android-14 is larger than android:minSdkVersion 8 in ./AndroidManifest.xml,难道是SDK版本问题??好的,修改一下看看结果。打开proj.android\AndroidManifest.xml,添加一行APP_PLATFORM := android-8,然后编译,果然没有报版本问题。进入Eclipse->右键工程->刷新->打包,看LOG一气呵成。OK,木有问题,成功收到回包。(PS:此时已在Manifest中解锁网络权限)

      解决问题的过程即折磨人又有成就感,记录下来,方便记忆和查阅,也希望能帮助遇到同样问题的苦逼程序猿。如有错误和补充的地方还望大家及时响应大笑


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值