Windows 下使用 cygwin 和 eclipse 搭建 Android 开发环境
步骤一: 准备好环境搭建的材料
1.ADT(android development tools) (下载完直接解压,解压目录不要带中文或者空格,里面包含了adt插件的eclipse和最android sdk)
https://dl.google.com/android/adt/adt-bundle-windows-x86_64-20130717.zip
2.NDK(Native development kits)(下载完直接解压,解压目录不要带中文或者空格)
http://dl.google.com/android/ndk/android-ndk-r8e-windows-x86_64.zip
3.JDK(Java development kits) (下载完成后,直接下一步 下一步到最后就行了)
http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html
检测安装是否成功:
4.cygwin
http://cygwin.com/setup-x86_64.exe
1>
2>
3>这个目录你随便填吧,这是下载包目录,以后重新安装可以在第 1> 步选择install from local directory
4>
5>这个你自己看着选吧 我选的 163 我觉得这个快一点
6> 选择下面勾选的两项 然后点击下一步
7>等待很久…… 直到安装完毕 (出去打会儿球吧,少年)
步骤二:配置环境变量
右击 计算机 ——》 属性 ——》 高级系统设置 ——》 环境变量
选择 系统变量 进行 新建 和 编辑
1、设置 NDK_ROOT
2、设置 Path
编辑 Path,在后面追加 4 个环境变量,以 ;(英文符号:分号) 隔开,注意别忘了第一个添加的前面分号的添加。
4个分别是:
android 的 sdk platform-tools;
android 的 sdk tools;
cygwion 的 bin;
上面添加的NDK_ROOT;
我Path环境配置如下所示:
D:\Android\ADT\sdk\platform-tools;
D:\Android\ADT\sdk\tools;
C:\cygwin64\bin;
D:\Android\NDK\android-ndk-r8e;
步骤三:编译程序
1>打开eclipse ,选择一个 Workspace ,随便选(看自己目录分配习惯)。
2>导入cocos2dx 的 HelloCpp 工程。
File->New->Project...->Android->Android Project from Exiting Code(“双击” 或者选择“next”)->Browse->(你的cocos2dx的目录)/samples/Cpp/HelloCpp/proj.android->Finish
3>执行Project->Build Project(Clean... 第一次编译随便你点不点) 如下图所示:
4>如果前面都没有问题的话,就能编译出 *.so 文件(不过往往会有问题,可以参考文章最后的常见问题及其解决方案)
5>让程序跑到我们的 Android 手机上(驱动程序随你装,QQ手机助手、360手机助手、金山手机助手……)。右键工程 Run as->Run Configurations->选择Always prompt to pick device(总是提示选择设备)->Run
6>弹出一个对话框,选择你的手机 双击 就可以了。
常见问题1:
Problem里出现错误:Cocos2dxActivity cannot be resolved to a type
解决方法:重新设置cocos2dx的java代码目录。右键工程,Build Path->Link Source->Browse->你的cocos2dx的目录/cocos2d/platform/android/java/src,然后把Folder name改成其他的,别叫src就行。
常见问题2:(建议直接使用r8版本)
Console里出现错误error: format not a string literal and no format arguments
这说明你用的是ndk版本是r9
解决方法1:改用ndk-r8e
解决方法2:修改报错的那个源代码所在目录的Android.mk文件搜索LOCAL_CFLAGS,如果已经有了就再后面加上 -w,如果没有那就直接加一行 LOCAL_CFLAGS := -w
常见问题3:
Android NDK:WARNING:APP_PLATFORM android-14 is larger than android:minSdkVersion 8 in ./AndroidManifest.xml (如下图所示错误信息)
解决方式:在 Application.mk 文件中添加 APP_PLATFORM := android-8(如下图所示)
常见问题4:编译时不报错,Run as 时报错,错误信息如下:
ERROR: unable to process assets while packaging
然后看看 problem 输出的是什么错误内容:
他让我们看看控制台输出信息,好的那就看看控制台输出的错误信息:
好的,蓝色区域标出的内容就是我们需要的线索。
解决方案:
将build_native.sh文件中的
原内容:cp -rf "$file" "$APP_ANDROID_ROOT"/assets
修改后:cp -rfp "$file" "$APP_ANDROID_ROOT"/assets
原内容:cp "$file" "$APP_ANDROID_ROOT"/assets
修改后:cp -p "$file" "$APP_ANDROID_ROOT"/assets
修改完毕后后如下图所示:
常见问题5:
make:***[clean-cocos2dx_static-armeabi] Error 1
recipe for target `clean-cocos2dx_static-armeabi` failed
将:android-ndk-r8e\build\core\build-binary.mk中
原内容:$(cleantarget): PRIVATE_CLEAN_FILES := ($(my)OBJS)
修改为:$(cleantarget): PRIVATE_CLEAN_FILES := $($(my)OBJS)
至于为什么这么解决问题,我并没有深入的研究,有时候我们不需要打破砂锅,我们需要的是一种解决问题的能力以及实施一种最好的解决方式,当然,刨根问底也许会让你有更深刻的了解,每个人都有自己的学习方式,我们需要按照自己的模式将学问和技术进行到底。Good Luck !!!
By the way . 记录一下我的 Mac 配置信息
Mac 下 .bath_profile 我的配置是
export ANDROID_SDK_ROOT=/Users/xiefeifei/Desktop/Android/ADT/sdk
export NDK_ROOT=/Users/xiefeifei/Desktop/Android/android-ndk-r9c
export ANT_ROOT=/Users/xiefeifei/Desktop/Android/ADT/eclipse/plugins/org.apache.ant_1.8.3.v20120321-1730/bin
export PATH=$PATH:$ANDROID_SDK_ROOT
export PATH=$PATH:$ANDROID_NDK_ROOT
PATH=${PATH}:$ANDROID_SDK_ROOT/platform-tools
export PATH
注意:在ADT ---> Preference 中配置 sdk 所在的路径信息 否则编译不通过。