用cocos2d-x中的create-android-project.bat生成Android工程时要注意修改一下copy_file.sh文件,该文件位于目录cocos2d-x-2.1.4\template\android中。
1. 去掉modify_project_classpath前面的注释
copy_file.sh文件中在调用modify_project_classpath添加了注释符,导致该函数不运行。所以生成的Android工程中会缺失工程文件(.project和.classpath)。
modify_project_classpath代码如下:
# copy .project and .classpath and replace project name
modify_project_classpath(){
sed "s/HelloCpp/$APP_NAME/" $COCOS2DX_ROOT/template/android/.project > $APP_DIR/proj.android/.project
cp -f $COCOS2DX_ROOT/template/android/.classpath $APP_DIR/proj.android
}
2.添加java源码的拷贝
在copy_file.sh中,函数copy_src_and_jni中添加拷贝代码,将生成cocos2d所需java库的java源代码拷贝到待生成android项目中。如下所示,不然生成android项目中会因为缺少库而导致 import org.cocos2dx.lib.Cocos2dxActivity 失败。
# from HelloWorld copy src and jni to APP_DIR
copy_src_and_jni(){
cp -rf $HELLOWORLD_ROOT/proj.android/jni $APP_DIR/proj.android
cp -rf $HELLOWORLD_ROOT/proj.android/src $APP_DIR/proj.android
cp -rf $COCOSJAVALIB_ROOT/src $APP_DIR/proj.android #在此处添加此行代码
# replace Android.mk
sh $COCOS2DX_ROOT/template/android/gamemk.sh $APP_DIR/proj.android/jni/Android.mk $NEED_BOX2D $NEED_CHIPMUNK $NEED_LUA
if [ $NEED_LUA = "true" ]; then
# copy lua script
cp "$COCOS2DX_ROOT"/scripting/lua/script/* "$APP_DIR"/Resources
fi
}