在编译cocos2d-x的helloworld 或者 tests的时候。
授权everyone组
再切换到cygwin Terminal下,再次运行build_native.sh包
发现还是报错,同样的是权限问题.这次是编译链接后生成的静态库的权限问题。
再次切换到cygwin Terminal下
在eclipse中创建一个android project,注意选择 Androdi Prolject from existing code
官网上使用ndk4、ndk5,这里是使用 ndkr7b、ndkr8或ndkr8b 。操作会简单很多,但是出了些小问题也是很坑人的。
下面出现如下编译错误
- Prebuilt : libgnustl_static.a <= <NDK>/sources/cxx-stl/gnu-libstdc++/4.6/libs/armeabi/
- SharedLibrary : libcocos2d.so
- g:/handgame/tools/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/g/HandGame/tools/android-ndk-r8b/build/core/build-binary.mk:378:
- recipe for target `obj/local/armeabi/libcocos2d.so' failed
在helloworld中找到Application.mk文件添加如下内容:STLPORT_FORCE_REBUILD := true
发现build出错了,Permission denied,windows 7下的权限问题。切换到windows的命令行中,
切换到D:\cocos2dx\MyHelloWorld录下,修改文件和目录的权限。
- 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" 现在由管理员组所有。
- (省略后面的提示信息了。。。)
- 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 个文件时失败
- 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
- 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'