您的位置:首页 > 移动开发 > Cocos引擎

[Cocos2D-X]NDK环境配置+交叉编译Android项目

2013-07-29 17:55 232 查看

1.安装和配置Android的NDK工具

   1.下载最新版本的Android NDK:http://developer.android.com/tools/sdk/ndk/index.html

   


   2.解压NDK压缩包,注意解压路径不要带空格,如不要放在“Program Files”下

 

   3.在cygwin的安装目录下(如何安装cygwin),找到home文件里,里面会有一个对应以你登录名命名的文件夹,里面有一个.bash_profile文件。

   打开.bash_profile,注意不要使用windows自带的记事本打开,推荐使用UltraEdit,在文件的最后添加NDK解压后的相对路径

   我放在C:\cygwin\android-ndk-r8e-windows-x86_64\android-ndk-r8e下),所以输入如下

   NDK_ROOT=/android-ndk-r8e-windows-x86_64/android-ndk-r8e

   export NDK_ROOT


   


   4.验证

   用安装好的NDK来编译一个NDK提供的sample程序hello-jni(我的目录是C:\cygwin\android-ndk-r8e-windows-x86_64\android-ndk-r8e\samples\hello-jni)

   (1)运行cygwin,输入命令 cd /cygdrive/c/cygwin/android-ndk-r8e-windows-x86_64/android-ndk-r8e/samples/hello-jni,进入“hello-jni”工程目录

   (2)编译,输入命令 $NDK_ROOT/ndk-build命令即可编译。ndk-build是调用ndk的编译程序。

 
      


  (3)到”…/hello-jni/libs/armeabi“目录下看有没有生成的.so文件,如果有,你的ndk就运行正常啦!

        


   5.注意:

      环境变量的名称我设置的是NDK_ROOT,而不是NDK,和网上很多人不一样。

      所以在输入命令时是$NDK_ROOT/ndk-build

2.在eclipse下配置环境

   1.安装eclipse相应插件ADT+CDT

   首先打开eclipse,选择Help->Install New Software

   


   



   2.配置Android SDK

   在eclipse,选择Window->Preferences->Android->NDK,在弹出的对话框中输入NDK压缩后的路径

    


3.交叉编译Cocos2D-X——从win32到Android

    1.首先进入cocos2d-x-2.1.4根目录下,配置create-android-project.bat,配置如下三个地方:
 


  注意:
        1)不要用windows自带的记事本编辑该文本,推荐使用UltraEdit
        2)_CYGBIN:配置cygwin安装的bin目录
          _ANDROIDTOOL:配置AndroidSDK目录Tools目录
          _NDKROOT:配置NDK解压后的目录
        3)上述目录的路径中都不要带空格(如“Program Files”)

      2.create-android-project.bat配置成功后,双击运行:
 


  按照实例,首先输入项目的包名:例如——com.flyaway.sandart
  接着输入项目名:例如——SandArt
 


  最后选择Android API的版本ID:
 


  这里我选择13,Android API17

  如果出现如下错误:
 


  则,请以管理员身份运行create-android-project.bat

  最终成功后:
 


  并且在cocos2d-x-2.1.4根目录下有一个新建的项目叫SandArt 
      

 
  
  3.编译新建的Android项目
  分别进入刚刚新建成功的Android项目的pro.Android(及其下Jni等)、classes和resources文件夹下,修改如下文件的权限(如何修改权限

   1)E:\cocos2d-x-2.1.4\cocos2d-x-2.1.4\SandArt\proj.android下的AndroidManifest.xml文件


    
   2)E:\cocos2d-x-2.1.4\cocos2d-x-2.1.4\SandArt\proj.android\jni下的Android.MK和Application.MK文件



  
   3)E:\cocos2d-x-2.1.4\cocos2d-x-2.1.4\SandArt\proj.android\jni\hellocpp下的main.cpp

 


        
     4)E:\cocos2d-x-2.1.4\cocos2d-x-2.1.4\SandArt\Classes下的所以文件



         
     5)E:\cocos2d-x-2.1.4\cocos2d-x-2.1.4\SandArt\Resources下的所以文件



     
     这种改权限的办法很不科学,如果有读者有更好发方法,望分享·~
     

     4.终于修改好权限之后,可以开始编译Android项目啦~

     运行cygwin终端,进入刚刚新建的Android项目下的pro.android文件夹,并输入命令./build_native.sh
    


      之后,我们就等着它慢慢编译吧~~
      成功之后,会生成libgame.so
      


4.在Eclipse上运行Android项目

    1.打开eclipse,新建一个Android项目,from existing code
     


       2.next之后,选择E:\cocos2d-x-2.1.4\cocos2d-x-2.1.4\SandArt\proj.android路径,finish
       


       3.之后可以看到新导入的项目有两处错误:
       


         (1)首先打开AndroidManifest.xml文件,发现如下错误:                                                                                                                                             
                                               


                  把icon改为ic_launcher即可,如下
                  


       (2)第二个错误是由于org.cocos2dx是空的,只需要将cocos2d-x-2.1.4根目录的cocos2dx/platform/android/java/src文件夹下文件夹全部复制到项目的src包下即可。 
          当然,每次要复制很麻烦,某位网友还推荐了一个一劳永逸的方法。
          进入E:\cocos2d-x-2.1.4\cocos2d-x-2.1.4\template\android目录,打开copy_files.sh,找到copy_src_and_jni()函数,添加如下代码
                                                                                                                                           
                                                 


       以后,就不会遇到这个错误了(不过在win7和win8系统下需要打开一下E:\cocos2d-x-2.1.4\cocos2d-x- 2.1.4\你所建的项目名\proj.android\src\org\cocos2dx才能读到,还是因为权限问题)。

       4.把项目运行到手机上(真机调试),你就可以看到经典的Cocos2D-X的hello world啦~~

              本文不详尽或错误之处,请各位不吝言辞,多多指教~谢谢~

             作者:Louise http://blog.csdn.net/yupingliu

       
           
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息