按照提示输入项目的包名,项目名,主要指定的Android sdk的targetid
D:\cocos2dx>create-android-project.bat
Please enter your package path. For example: org.cocos2dx.example:com.test
Please enter your project name:MyHelloWorld
...target的提示信息
Please input target id:10
Create android project
Create Android project inside proj.android
Created project directory: D:\cocos2dx\MyHelloWorld\proj.android
Created directory D:\cocos2dx\MyHelloWorld\proj.android\src\com\test
Added file D:\cocos2dx\MyHelloWorld\proj.android\src\com\test\MyHelloWorld.java
Created directory D:\cocos2dx\MyHelloWorld\proj.android\res
Created directory D:\cocos2dx\MyHelloWorld\proj.android\bin
Created directory D:\cocos2dx\MyHelloWorld\proj.android\libs
Created directory D:\cocos2dx\MyHelloWorld\proj.android\res\values
Added file D:\cocos2dx\MyHelloWorld\proj.android\res\values\strings.xml
Created directory D:\cocos2dx\MyHelloWorld\proj.android\res\layout
Added file D:\cocos2dx\MyHelloWorld\proj.android\res\layout\main.xml
Added file D:\cocos2dx\MyHelloWorld\proj.android\AndroidManifest.xml
Added file D:\cocos2dx\MyHelloWorld\proj.android\build.xml
Added file D:\cocos2dx\MyHelloWorld\proj.android\proguard-project.txt
好了,这个时候切换到D:\cocos2dx目录下会发现多了一个MyHelloWorld的目录。
Classes目录下放置的是c/c++头文件和源码文件,这里重要的是AppDelegate.cpp和AppDelegate.h(后续文章中介绍这两个)
HelloWorldScene.cpp,HelloWorldScene.h是给出的一个项目默认显示的场景。
Resource目录下存放的是各种资源文件。
proj.android 目录中放的就是我们需要的android 项目文件了。
如果还有其他平台的就有其他的proj.xxx目录,这个可以在D:\cocos2dx\tests目录下看到.
好了,到了这一步,离成功就不远了。
打开cygwin Terminal,切换目录至/cygdrive/d/cocos2dx/MyHelloWorld/proj.android运行build_native.sh
berdy@berdy-PC /cygdrive/d/cocos2dx/MyHelloWorld/proj.android
$ ./build_native.sh
cp: cannot open `/cygdrive/d/cocos2dx/MyHelloWorld/Resources/CloseNormal.png' for reading: Permission denied
cp: cannot open `/cygdrive/d/cocos2dx/MyHelloWorld/Resources/CloseSelected.png' for reading: Permission denied
cp: cannot open `/cygdrive/d/cocos2dx/MyHelloWorld/Resources/fps_images.png' for reading: Permission denied
cp: cannot open `/cygdrive/d/cocos2dx/MyHelloWorld/Resources/fps_images-hd.png' for reading: Permission denied
cp: cannot open `/cygdrive/d/cocos2dx/MyHelloWorld/Resources/fps_images-ipadhd.png' for reading: Permission denied
cp: cannot open `/cygdrive/d/cocos2dx/MyHelloWorld/Resources/HelloWorld.png' for reading: Permission denied
Using prebuilt externals
make: Entering directory `/cygdrive/d/cocos2dx/MyHelloWorld/proj.android'
/cygdrive/d/Android/android-sdk/android-ndk-r8b/build/core/add-application.mk:49: jni/Application.mk: Permission denied
/cygdrive/d/Android/android-sdk/android-ndk-r8b/build/core/setup-toolchain.mk:169: jni/Android.mk: Permission denied
Gdbserver : [arm-linux-androideabi-4.6] libs/armeabi/gdbserver
Gdbsetup : libs/armeabi/gdb.setup
make: Leaving directory `/cygdrive/d/cocos2dx/MyHelloWorld/proj.android'
发现build出错了,Permission denied,windows 7下的权限问题。切换到windows的命令行中,
D:\cocos2dx\MyHelloWorld>takeown /f * /a /r
成功: 此文件(或文件夹): "D:\cocos2dx\MyHelloWorld\Classes" 现在由管理员组所有。
成功: 此文件(或文件夹): "D:\cocos2dx\MyHelloWorld\proj.android" 现在由管理员组所有。
成功: 此文件(或文件夹): "D:\cocos2dx\MyHelloWorld\Resources" 现在由管理员组所有。
成功: 此文件(或文件夹): "D:\cocos2dx\MyHelloWorld\Classes\AppDelegate.cpp" 现在由管理员组所有。
成功: 此文件(或文件夹): "D:\cocos2dx\MyHelloWorld\Classes\AppDelegate.h" 现在由管理员组所有。
成功: 此文件(或文件夹): "D:\cocos2dx\MyHelloWorld\Classes\HelloWorldScene.cpp" 现在由管理员组所有。
成功: 此文件(或文件夹): "D:\cocos2dx\MyHelloWorld\Classes\HelloWorldScene.h" 现在由管理员组所有。
成功: 此文件(或文件夹): "D:\cocos2dx\MyHelloWorld\proj.android\AndroidManifest.xml" 现在由管理员组所有。
成功: 此文件(或文件夹): "D:\cocos2dx\MyHelloWorld\proj.android\ant.properties" 现在由管理员组所有。
成功: 此文件(或文件夹): "D:\cocos2dx\MyHelloWorld\proj.android\assets" 现在由管理员组所有。
成功: 此文件(或文件夹): "D:\cocos2dx\MyHelloWorld\proj.android\bin" 现在由管理员组所有。
成功: 此文件(或文件夹): "D:\cocos2dx\MyHelloWorld\proj.android\build.xml" 现在由管理员组所有。
成功: 此文件(或文件夹): "D:\cocos2dx\MyHelloWorld\proj.android\build_native.sh" 现在由管理员组所有。
(省略后面的提示信息了。。。)
授权everyone组
D:\cocos2dx\MyHelloWorld>icacls * /t /grant:r everyone:f
已处理的文件: Classes
已处理的文件: proj.android
已处理的文件: Resources
(省略了中间的提示信息)
已处理的文件: Resources\CloseNormal.png
已处理的文件: Resources\CloseSelected.png
已处理的文件: Resources\fps_images-hd.png
已处理的文件: Resources\fps_images-ipadhd.png
已处理的文件: Resources\fps_images.png
已处理的文件: Resources\HelloWorld.png
已成功处理 65 个文件; 处理 0 个文件时失败
再切换到cygwin Terminal下,再次运行build_native.sh包
berdy@berdy-PC /cygdrive/d/cocos2dx/MyHelloWorld/proj.android
$ ./build_native.sh
(省略中间的编译提示信息)
d:/android/android-sdk/android-ndk-r8b/toolchains/arm-linux-androideabi-4.6/prebuilt/windows/bin/../lib/gcc/arm-linux-androideabi/4.6.x-google/../../../../arm-linux-androideabi/bin/ld.exe: cannot find ./obj/local/armeabi/png.a: Permission denied
d:/android/android-sdk/android-ndk-r8b/toolchains/arm-linux-androideabi-4.6/prebuilt/windows/bin/../lib/gcc/arm-linux-androideabi/4.6.x-google/../../../../arm-linux-androideabi/bin/ld.exe: cannot find ./obj/local/armeabi/jpeg.a: Permission denied
d:/android/android-sdk/android-ndk-r8b/toolchains/arm-linux-androideabi-4.6/prebuilt/windows/bin/../lib/gcc/arm-linux-androideabi/4.6.x-google/../../../../arm-linux-androideabi/bin/ld.exe: cannot find ./obj/local/armeabi/xml2.a: Permission denied
d:/android/android-sdk/android-ndk-r8b/toolchains/arm-linux-androideabi-4.6/prebuilt/windows/bin/../lib/gcc/arm-linux-androideabi/4.6.x-google/../../../../arm-linux-androideabi/bin/ld.exe: cannot find ./obj/local/armeabi/tiff.a: Permission denied
d:/android/android-sdk/android-ndk-r8b/toolchains/arm-linux-androideabi-4.6/prebuilt/windows/bin/../lib/gcc/arm-linux-androideabi/4.6.x-google/../../../../arm-linux-androideabi/bin/ld.exe: cannot find ./obj/local/armeabi/libgnustl_static.a: Permission denied
collect2: ld returned 1 exit status
/cygdrive/d/Android/android-sdk/android-ndk-r8b/build/core/build-binary.mk:378: recipe for target `obj/local/armeabi/libgame.so' failed
make: *** [obj/local/armeabi/libgame.so] Error 1
make: Leaving directory `/cygdrive/d/cocos2dx/MyHelloWorld/proj.android'
发现还是报错,同样的是权限问题.这次是编译链接后生成的静态库的权限问题。
jpeg.a,libcocos2d.a,libcocosdenshion.a,libgnustl_static.a,png.a,tiff.a,xml2.a
切换到D:\cocos2dx\MyHelloWorld\proj.android\obj\local\armeabi,同样执行上面的命令
D:\cocos2dx\MyHelloWorld\proj.android\obj\local\armeabi>takeown /f * /a /r
D:\cocos2dx\MyHelloWorld\proj.android\obj\local\armeabi>icacls * /t /grant:r everyone:f
再次切换到cygwin Terminal下
berdy@berdy-PC /cygdrive/d/cocos2dx/MyHelloWorld/proj.android
$ ./build_native.sh
Using prebuilt externals
make: Entering directory `/cygdrive/d/cocos2dx/MyHelloWorld/proj.android'
Gdbserver : [arm-linux-androideabi-4.6] libs/armeabi/gdbserver
Gdbsetup : libs/armeabi/gdb.setup
SharedLibrary : libgame.so
Install : libgame.so => libs/armeabi/libgame.so
make: Leaving directory `/cygdrive/d/cocos2dx/MyHelloWorld/proj.android'
在eclipse中创建一个android project,注意选择 Androdi Prolject from existing code
在设备或者模拟器上运行,出现了如下画面就大功告成了。
好了,今天就先写到这里了,后面的会在这个MyHelloWorld项目中来添加素材和功能了。请期待后续。。。