Mac上配置Android开发环境并把Cocos2d-x项目编译到Android

原文地址:http://blog.csdn.net/song_hui_xiang/article/details/15815493

1、首先下载所需Android工具,包括Eclipse, ADT, SDK,NDK,JDK,ANT,CDT,关于安装与配置等一系列在mac上都很简单这里就不再赘述。

Eclipse + ADT plugin + Android SDK 下载地址:http://developer.android.com/sdk/index.html#ExistingIDE
Android NDK 下载地址:http://developer.android.com/tools/sdk/ndk/index.html
Apache ANT的下载及配置请参阅:http://blog.csdn.net/song_hui_xiang/article/details/14315529
CDT 致力于为Eclipse平台提供功能完全的C/C++集成开发环境 下载地址:http://www.eclipse.org/cdt/

检查本地mac是否已有JDK以及ANT

打开终端输入java -versionant -version命令,如果如图1显示,则证明已有:


2、开始配置相关路径

我的Cocos2d-X,SDK,NDK存放路径如下:

Cocos2d-X的路径: /Users/xiangzi/Documents/cocos2d-x-2.1.4

Android SDK 路径: /Users/xiangzi/Documents/AndroidTools/android-sdk

Android NDK 路径: /Users/xiangzi/Documents/AndroidTools/android-ndk-r8

打开终端输入命令:pico .bash_profile 回车

然后键入位置如下图2:


输入完成后Control + x 保存,接着再输入y回车确认。

检验路径步骤: 关闭你的“终端”,重新打开,如果之前路径配置有问题,那么重新打开的“终端”将出现如下提示:-bash: exoort: command not found    如果没有此类提示,OK说明路径配置完成!


3、下面开始讲解把cpp的Demo项目编译到Android。

打开终端,输入命令如下图3:


注意:工程名中是否含有非法字符,如中文状态字符或以数字打头,这都是不允许的。

然后在你的cocos2d-x目录下会有一个名为AndroidProj文件夹如图4,我们只需要此文件夹下的proj.android文件。



然后新建一个Cocos2dx项目,取名为 CppToAndroid,就不再向项目中添加任何类。把proj.android拷贝到CppToAndroid项目下,与项目中Classes同一目录,如图5




接着用文本打开proj.android/jni下的Android.mk,这里我们只需注意LOCAL_SRC_FILES这个即可,如图6:

添加.cpp.c 的文件

注意:在添加自定义类时相同的不可有重复,否则会报 multiple definition of 'XXX' 的错误!

如果你的类在Classes目录下又有实际路径,则需要添加实际路径,LOCAL_C_INCLUDES += 依次添加,如下图:


再找到proj.android下的build_native.sh,同样用文本打开,在此我们只需配置COCOS2DX_ROOT= 、APP_ROOT= 、 APP_ANDROID_ROOT=,这三项即可,我的配置如图7:




打开终端,cd到项目中proj.android目录下,再输入 ./build_native.sh 开始编译,当最后出现

SharedLibrary  : libgame.so

Install        : libgame.so => libs/armeabi/libgame.so

make: Leaving directory `/Users/xiangzi/Desktop/CppToAndroid/CppToAndroid/proj.android'

则表示编译成功,如图8:




Error:

make: *** [obj/local/armeabi/objs/cocos2dx_static/platform/android/CCCommon.o] Error 1

1、我在编译这一步中每次都会报上面.o的错误,网上搜的是ndk版本问题,于是把ndk9换成了ndk-r8d,问题解决。

或者修改/proj.android/jni目录下的 Application.mk 文件,添加一句 APP_CPPFLAGS += -Wno-error=format-security

2、错误:jni/Android.mk:12: *** commands commence before first target.  Stop.说明符号 \ 后面有空格

3、错误:error: ISO C++ forbids initialization of member...  .h头文件是用于声明而不是定义。

4、错误:error:Android NDK: WARNING: Unsupported source file extensions in jni/Android.mk for module game_shared  

   在Android.mk中添加:LOCAL_CPP_EXTENSION := .cxx .cpp .cc 

5、如果在项目中修改了引擎中的某类,如 ZipUtils.cpp 类,此类我们为会plist文件加密用到,因为在编译到Android过程中编译器所录找的是引擎中的类而不是你项目中的,所以要把项目中修改的 ZipUtils.cpp 类,覆盖掉引擎下的 ZipUtils.cpp 类。


打开Eclipse,导入项目下的proj.android,如图9:



导入之后Android项目会报错,问题是Build Path缺少文件的link,我们配置下即可,首先右键项目然后选择Properties,然后选择“Java Build Path”,在 Source 栏目中点击“Link Source” ,如图10:




Linked folder location:

路径指向:/Users/xiangzi/Documents/cocos2d-x-2.1.4/cocos2dx/platform/android/java/src

Folder name:

如果报错自定义个名子即可,如图11:



再就是,如果你的项目需要联网别忘了在AndroidMainfest.xml中添加上网权限,设置是否横竖屏等。

[cpp]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <manifest xmlns:android="http://schemas.android.com/apk/res/android"  
  3.       package="com.cocos2dx.xiangzi"  
  4.       android:versionCode="1"  
  5.       android:versionName="1.0">  
  6.   
  7.     <uses-sdk android:minSdkVersion="8"/>  
  8.     <uses-feature android:glEsVersion="0x00020000" />  
  9.     <uses-permission android:name ="android.permission.INTERNET"/>  
  10.   
  11.     <application android:label="@string/app_name"  
  12.         android:icon="@drawable/icon">  
  13.   
  14.         <activity android:name=".AndroidProj"  
  15.                   android:label="@string/app_name"  
  16.                   android:screenOrientation="portrait"  
  17.                   android:theme="@android:style/Theme.NoTitleBar.Fullscreen"  
  18.                   android:configChanges="orientation">  
  19.             <intent-filter>  
  20.                 <action android:name="android.intent.action.MAIN" />  
  21.                 <category android:name="android.intent.category.LAUNCHER" />  
  22.             </intent-filter>  
  23.         </activity>  
  24.     </application>  
  25.     <supports-screens android:largeScreens="true"  
  26.                       android:smallScreens="true"  
  27.                       android:anyDensity="true"  
  28.                       android:normalScreens="true"/>  
  29. </manifest>   

按以上步骤都操作完后发现项目名称上有红X,错误如下图:


解决上面问题我们只需要删除Java Build path —> Libraries下的Android Dependencies包即可,操作步骤如下:

1. 打开Configure Build path


2.删除Android Dependencies包。




模拟器运行会报错,我们直接真机运行,成功。如图12:




补充:make clean命令,当你想要再从头编译一遍项目时就需要用到此命令,如果没用此命令直接编译,编译器只会重新编译你改动过的项目中的类,而不会修改引擎下的类。下面是使用方法:

首先,打开终端,cd 到你项目的 proj.android 下,我的如路径如下:/Users/xiangzi/Desktop/YN777/YN777/proj.android

然后输入 pico makefile回车,再输入如下图:


注意: clean前没有空格,rm前是一个tab,然后control + x 保存,y确认。。接着输入 make clean 命令,当出现

rm -rf libs/

rm -rf obj/

时表示成功。。


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值