linuxmint18上搭建cocos2d-x-3.14.1安卓开发环境
第一部分 python和java基础环境
1,系统自带python 2.7,不用额外安装
2,系统自带openjdk-8-jre,安装一下jdk:
sudo apt-get install openjdk-8-jdk
第二部分 cocos2d-x-3.14.1自身的编译、测试
1,下载cocos2d-x-3.14.1.zip,解压。
2,cd ~/Downloads/cocos2d-x-3.14.1/build,修改install-deps-linux.sh,注释掉g++ 4.9相关的代码,因为通过sudo apt-get install build-essential安装的g++版本已经大于4.9了,支持c+11,如下:【g++4.8.1已经全面支持c++11了】
#!/bin/bash
# Change directory to the location of this script
cd $(dirname ${BASH_SOURCE[0]})
if [ ! $(command -v apt-get) ]; then
echo "Not a .deb package system. Please install dependencies manually"
exit 0
fi
# by hgc begin
#install g++-4.9
#sudo add-apt-repository ppa:ubuntu-toolchain-r/test -y > /dev/null
sudo apt-get update
sudo apt-get upgrade
# by hgc end
DEPENDS='libx11-dev'
DEPENDS+=' libxmu-dev'
DEPENDS+=' libglu1-mesa-dev'
DEPENDS+=' libgl2ps-dev'
DEPENDS+=' libxi-dev'
#DEPENDS+=' g++-4.9' # by hgc
DEPENDS+=' libzip-dev'
DEPENDS+=' libpng12-dev'
DEPENDS+=' libcurl4-gnutls-dev'
DEPENDS+=' libfontconfig1-dev'
DEPENDS+=' libsqlite3-dev'
DEPENDS+=' libglew-dev'
DEPENDS+=' libssl-dev'
DEPENDS+=' libgtk-3-dev'
MISSING=
echo "Checking for missing packages ..."
for i in $DEPENDS; do
if ! dpkg-query -W --showformat='${Status}\n' $i | grep "install ok installed" > /dev/null; then
MISSING+="$i "
fi
done
# by hgc begin
#if [ -f /usr/bin/g++ ];then
#sudo rm /usr/bin/g++
#echo "remove old g++"
#fi
#sudo ln -s /usr/bin/g++-4.9 /usr/bin/g++
# by hgc end
if [ -n "$MISSING" ]; then
TXTCOLOR_DEFAULT="\033[0;m"
TXTCOLOR_GREEN="\033[0;32m"
echo -e $TXTCOLOR_GREEN"Missing packages: $MISSING.\nYou may be asked for your password for package installation."$TXTCOLOR_DEFAULT
#sudo apt-get --force-yes --yes install $MISSING > /dev/null # by hgc
sudo apt-get --force-yes --yes install $MISSING # by hgc
fi
# install glfw
#../tools/travis-scripts/install_glfw.sh # by hgc
3,执行install-deps-linux.sh,等待一会。
4,cd ~/Downloads/cocos2d-x-3.14.1/tools/travis-scripts,修改install_glfw.sh,在线下载glfw-3.2.zip很慢,先用迅雷下载好手动放到travis-scripts目录下,如下:
#!/bin/bash
GLFW_VERSION="3.2"
GLFW_SOURCE="https://github.com/glfw/glfw/releases/download/${GLFW_VERSION}/glfw-${GLFW_VERSION}.zip"
GLFW_ZIP="glfw-${GLFW_VERSION}.zip"
GLFW_INSTALL="glfw_install"
GLFW_SRCDIR="glfw-${GLFW_VERSION}"
GLFW_DESTDIR="glfw_dest"
install_glfw_dep()
{
sudo apt-get install xorg-dev
sudo apt-get install libglu1-mesa-dev
#sudo apt-get install cmake cmake # by hgc 我自己已经安装过了,这里注释掉
sudo apt-get install wget
}
clean_tmp_file()
{
rm -rf ${GLFW_INSTALL}
}
make_and_install()
{
mkdir $GLFW_DESTDIR
cd $GLFW_DESTDIR
cmake "../${GLFW_SRCDIR}" -G "Unix Makefiles" -DBUILD_SHARED_LIBS=ON
make
sudo make install
sudo ldconfig
cd ..
}
install_glfw()
{
echo glw_version ${GLFW_VERSION}
echo glfw_download_size ${GLFW_SOURCE}
echo glfw_zip_file ${GLFW_ZIP}
install_glfw_dep
mkdir $GLFW_INSTALL
cp -f ${GLFW_ZIP} $GLFW_INSTALL # by hgc
cd $GLFW_INSTALL
#wget --passive -c -p -O $GLFW_ZIP $GLFW_SOURCE # by hgc
unzip ${GLFW_ZIP}
make_and_install
cd ..
clean_tmp_file
}
#try to remove glfw3
sudo apt-get purge libglfw3 libglfw3-dev
install_glfw
5,从https://github.com/glfw/glfw/releases下载好glfw-3.2.zip,放在~/Downloads/cocos2d-x-3.14.1/tools/travis-scripts目录
6,执行install_glfw.sh,等待。
7,cd ~/Downloads/cocos2d-x-3.14.1/build
mkdir linux; cd linux;cmake ../..; make -j 4
8,执行~/Downloads/cocos2d-x-3.14.1/build/linux/bin/cpp-tests下的cpp-tests,报错:
./cpp-tests: error while loading shared libraries: libfmod.so.6: cannot open shared object file: No such file or directory
9,搜索libfmod.so
cd ~/Downloads/cocos2d-x-3.14.1; find . -name libfmod.so
./external/linux-specific/fmod/prebuilt/32-bit/libfmod.so
./external/linux-specific/fmod/prebuilt/64-bit/libfmod.so
cd ./external/linux-specific/fmod/prebuilt/64-bit/
ln -s libfmod.so libfmod.so.6
10,cd ~/Downloads/cocos2d-x-3.14.1/build/linux/bin/cpp-tests
export LD_LIBRARY_PATH=/home/hgc/Downloads/cocos2d-x-3.14.1/external/linux-specific/fmod/prebuilt/64-bit; ./cpp-tests
第三部分 linux平台上的c++ demo
1,准备工作
cd ~/Downloads/cocos2d-x-3.14.1
python setup.py,一路回车(编译linux平台上的可执行程序与android无关,相关路径可以先忽略)
source /home/hgc/.bashrc
2,新建项目
cd ~/workspace/cocos; cocos new -p com.your_company.mygame -l cpp -d . MyGame
3,cd MyGame
编译+运行:cocos run -p linux -j 4
用cocos compile命令只做编译。
第四部分 Android环境搭建
1,安装ant
sudo apt-get install ant
2,
从http://www.androiddevtools.cn上下载Android sdk tools(后续通过tools安装Android sdk)
从http://www.androiddevtools.cn/上下载NDK(r11+)
能翻墙的话从Android官网下载。
3,cd ~/Downloads/android-sdk-linux/tools;
./android
打开Android SDK Manager,Android SDK Manage负责下载或更新不同版本的SDK包。
到底需要下载哪些东西,参考:https://www.zhihu.com/question/31935836 。我的方案是:
Tools下只需装前三项,即最新版本的
sdk只需装最新的Android7.1.1 API25(其中的SDK platform,如果需要运行模拟器,可以安装一个image,如google apis intel x86 atom system image)
extra不需要
不能下载表示有墙,需要设置代理,选择http://www.androiddevtools.cn/里的腾讯镜像进行更新,中断时多试几次。
4,cd ~/Downloads/cocos2d-x-3.14.1
python setup.py,按提示设置环境变量,如下:
NDK_ROOT=/home/hgc/Downloads/android-ndk-r13b
ANDROID_SDK_ROOT=/home/hgc/Downloads/android-sdk-linux
ANT_ROOT=/usr/share/ant/bin
source /home/hgc/.bashrc
5,进入MyGame目录,执行cocos compile -p android -j 4 -m debug --ap android-25 --app-abi armeabi:armeabi-v7a:x86
目标文件在./bin/debug/android/MyGame-debug.apk
如果要编译release版本,需要先创建keystore:
keytool -genkey -alias mygame -keyalg RSA -validity 36500 -keystore mygame.keystore
说明:
genkey 产生密钥
-alias 别名
-keyalg RSA 使用RSA算法对签名加密
-validity 单位:天
-keystore 文件名
会要求输入keystore的密码,以及组织名字等相关信息,一路回车,最后输入yes,填好后在当前目录生成keystore文件:
release版本编译完后,会提示你输入keystore文件。
参考:http://blog.csdn.net/lzq0101/article/details/45731529
6,新建工程后第一次编译比较慢,且每个工程占用磁盘空间过大,可以通过cocos gen-libs命令解决,参考:http://discuss.cocos2d-x.org/t/how-to-speed-up-cocos2d-x-build-with-prebuilt-lib/23402
具体操作如下:
(1)新建一个cpp工程game,cocos new -p com.your_company.game -l cpp -d . game
(2)cd game; cocos gen-libs -p android -m debug --ap android-25 --app-abi armeabi:armeabi-v7a:x86,生成prebuilt库。其中--app-abi armeabi:armeabi-v7a:x86是可选的,是为了支持x86指令集的模拟器和armeabi-v7a的目标机,默认是armeabi指令集。
ps armeabi和armeabi-v7a表示cpu的类型,我们知道一般的手机或平板都是用arm的cpu(mips的就悲催的被忽视了),armeabi就是针对普通的或旧的arm v5 cpu,armeabi-v7a是针对有浮点运算或高级扩展功能的arm v7 cpu。
armeabi通用性强,但速度慢,而v7a能充分发挥cpu的性能。
(3)新建的工程都会把cocos2d-x源码拷贝一份,可以删掉。rm -rf cocos2d
(4)修改proj.android/build-cfg.json,增加一项prebuilt-mk,且路径都改为绝对路径,如下:
{
"ndk_module_path" :[
"/home/hgc/Downloads/cocos2d-x-3.14.1",
"/home/hgc/Downloads/cocos2d-x-3.14.1/cocos/prebuilt-mk",
"/home/hgc/Downloads/cocos2d-x-3.14.1/cocos",
"/home/hgc/Downloads/cocos2d-x-3.14.1/external"
],
"copy_resources": [
{
"from": "../Resources",
"to": ""
}
]
}
(5)修改proj.android/jni/Android.mk,注释掉已有的import-add-path,增加一项prebuilt-mk,且路径都改为绝对路径,如下:
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
# by hgc begin
# $(call import-add-path,$(LOCAL_PATH)/../../cocos2d)
# $(call import-add-path,$(LOCAL_PATH)/../../cocos2d/external)
# $(call import-add-path,$(LOCAL_PATH)/../../cocos2d/cocos)
# $(call import-add-path,$(LOCAL_PATH)/../../cocos2d/cocos/audio/include)
$(call import-add-path,/home/hgc/Downloads/cocos2d-x-3.14.1/cocos/prebuilt-mk)
# by hgc end
LOCAL_MODULE := MyGame_shared
LOCAL_MODULE_FILENAME := libMyGame
LOCAL_SRC_FILES := hellocpp/main.cpp \
../../Classes/AppDelegate.cpp \
../../Classes/HelloWorldScene.cpp
LOCAL_C_INCLUDES := $(LOCAL_PATH)/../../Classes
# _COCOS_HEADER_ANDROID_BEGIN
# _COCOS_HEADER_ANDROID_END
LOCAL_STATIC_LIBRARIES := cocos2dx_static
# _COCOS_LIB_ANDROID_BEGIN
# _COCOS_LIB_ANDROID_END
include $(BUILD_SHARED_LIBRARY)
$(call import-module,.)
# _COCOS_LIB_IMPORT_ANDROID_BEGIN
# _COCOS_LIB_IMPORT_ANDROID_END
(6)修改project.properties,将路径改为/home/hgc/Downloads/cocos2d-x-3.14.1的相对路径,注意一定要是相对路径,如下:
android.library.reference.1=../../../../Downloads/cocos2d-x-3.14.1/cocos/platform/android/java
(7)删除其它无用的子工程文件夹,只留Classes/ proj.android/ Resources/ .cocos-project.json这几个。将该工程保存为基准工程,提交到git上,后续新建项目以此为对照。
7,命令帮助
cocos --help
cocos compile --help
为了在x86指令集的模拟器和armeabi-v7a的目标机上运行,在cocos compile的时候可以加上--app-abi armeabi:armeabi-v7a:x86
第五部分 模拟器调试和gdb真机调试
1,模拟器调试
使用Android SDK Manager安装android-25中的google apis intel x86 atom system image
在Android SDK Manager的Tools菜单中,选择Manage AVDs,创建x86模拟器,然后启动。注意:模拟器启动后如果报“your cpu does not support required features vt-x or svm”,则要在bios中开启,参考:http://www.veryhuo.com/a/view/110093.html。虚拟机直接在设置中勾选。
将apk安装到模拟器中:cd bin/debug/android; adb install ddz-debug.apk
在模拟器中点击app即可启动。
在proj.android/libs/x86目录下有三个文件:
gdbserver gdb.setup libMyGame.so
将gdbserver和so文件复制到模拟器的/data目录下,命令如下:
adb root
adb push gdbserver /data
adb push libMyGame.so /data
执行adb shell命令,进入模拟器的命令行,然后:
执行ps查看app的pid
cd /data
./gdbserver :5039 --attach pid
会看到 Listening on port 5039 这代表正在监听。
回到linux 控制台,执行:
adb forward tcp:5039 tcp:5039
将proj.android/libs/x86目录下的gdb.setup拷贝到proj.android目录下,
cd proj.android; gdb -x gdb.setup,进入gdb命令行,然后:
target remote :5039 连接 gdbserver进行调试
l 查看代码
接下来就可以使用gdb打断点进行调试了。
2,gdb真机调试:
http://blog.csdn.net/AtlanticEvix/article/details/45028797?locationNum=1&fps=1
第一部分 python和java基础环境
1,系统自带python 2.7,不用额外安装
2,系统自带openjdk-8-jre,安装一下jdk:
sudo apt-get install openjdk-8-jdk
第二部分 cocos2d-x-3.14.1自身的编译、测试
1,下载cocos2d-x-3.14.1.zip,解压。
2,cd ~/Downloads/cocos2d-x-3.14.1/build,修改install-deps-linux.sh,注释掉g++ 4.9相关的代码,因为通过sudo apt-get install build-essential安装的g++版本已经大于4.9了,支持c+11,如下:【g++4.8.1已经全面支持c++11了】
#!/bin/bash
# Change directory to the location of this script
cd $(dirname ${BASH_SOURCE[0]})
if [ ! $(command -v apt-get) ]; then
echo "Not a .deb package system. Please install dependencies manually"
exit 0
fi
# by hgc begin
#install g++-4.9
#sudo add-apt-repository ppa:ubuntu-toolchain-r/test -y > /dev/null
sudo apt-get update
sudo apt-get upgrade
# by hgc end
DEPENDS='libx11-dev'
DEPENDS+=' libxmu-dev'
DEPENDS+=' libglu1-mesa-dev'
DEPENDS+=' libgl2ps-dev'
DEPENDS+=' libxi-dev'
#DEPENDS+=' g++-4.9' # by hgc
DEPENDS+=' libzip-dev'
DEPENDS+=' libpng12-dev'
DEPENDS+=' libcurl4-gnutls-dev'
DEPENDS+=' libfontconfig1-dev'
DEPENDS+=' libsqlite3-dev'
DEPENDS+=' libglew-dev'
DEPENDS+=' libssl-dev'
DEPENDS+=' libgtk-3-dev'
MISSING=
echo "Checking for missing packages ..."
for i in $DEPENDS; do
if ! dpkg-query -W --showformat='${Status}\n' $i | grep "install ok installed" > /dev/null; then
MISSING+="$i "
fi
done
# by hgc begin
#if [ -f /usr/bin/g++ ];then
#sudo rm /usr/bin/g++
#echo "remove old g++"
#fi
#sudo ln -s /usr/bin/g++-4.9 /usr/bin/g++
# by hgc end
if [ -n "$MISSING" ]; then
TXTCOLOR_DEFAULT="\033[0;m"
TXTCOLOR_GREEN="\033[0;32m"
echo -e $TXTCOLOR_GREEN"Missing packages: $MISSING.\nYou may be asked for your password for package installation."$TXTCOLOR_DEFAULT
#sudo apt-get --force-yes --yes install $MISSING > /dev/null # by hgc
sudo apt-get --force-yes --yes install $MISSING # by hgc
fi
# install glfw
#../tools/travis-scripts/install_glfw.sh # by hgc
3,执行install-deps-linux.sh,等待一会。
4,cd ~/Downloads/cocos2d-x-3.14.1/tools/travis-scripts,修改install_glfw.sh,在线下载glfw-3.2.zip很慢,先用迅雷下载好手动放到travis-scripts目录下,如下:
#!/bin/bash
GLFW_VERSION="3.2"
GLFW_SOURCE="https://github.com/glfw/glfw/releases/download/${GLFW_VERSION}/glfw-${GLFW_VERSION}.zip"
GLFW_ZIP="glfw-${GLFW_VERSION}.zip"
GLFW_INSTALL="glfw_install"
GLFW_SRCDIR="glfw-${GLFW_VERSION}"
GLFW_DESTDIR="glfw_dest"
install_glfw_dep()
{
sudo apt-get install xorg-dev
sudo apt-get install libglu1-mesa-dev
#sudo apt-get install cmake cmake # by hgc 我自己已经安装过了,这里注释掉
sudo apt-get install wget
}
clean_tmp_file()
{
rm -rf ${GLFW_INSTALL}
}
make_and_install()
{
mkdir $GLFW_DESTDIR
cd $GLFW_DESTDIR
cmake "../${GLFW_SRCDIR}" -G "Unix Makefiles" -DBUILD_SHARED_LIBS=ON
make
sudo make install
sudo ldconfig
cd ..
}
install_glfw()
{
echo glw_version ${GLFW_VERSION}
echo glfw_download_size ${GLFW_SOURCE}
echo glfw_zip_file ${GLFW_ZIP}
install_glfw_dep
mkdir $GLFW_INSTALL
cp -f ${GLFW_ZIP} $GLFW_INSTALL # by hgc
cd $GLFW_INSTALL
#wget --passive -c -p -O $GLFW_ZIP $GLFW_SOURCE # by hgc
unzip ${GLFW_ZIP}
make_and_install
cd ..
clean_tmp_file
}
#try to remove glfw3
sudo apt-get purge libglfw3 libglfw3-dev
install_glfw
5,从https://github.com/glfw/glfw/releases下载好glfw-3.2.zip,放在~/Downloads/cocos2d-x-3.14.1/tools/travis-scripts目录
6,执行install_glfw.sh,等待。
7,cd ~/Downloads/cocos2d-x-3.14.1/build
mkdir linux; cd linux;cmake ../..; make -j 4
8,执行~/Downloads/cocos2d-x-3.14.1/build/linux/bin/cpp-tests下的cpp-tests,报错:
./cpp-tests: error while loading shared libraries: libfmod.so.6: cannot open shared object file: No such file or directory
9,搜索libfmod.so
cd ~/Downloads/cocos2d-x-3.14.1; find . -name libfmod.so
./external/linux-specific/fmod/prebuilt/32-bit/libfmod.so
./external/linux-specific/fmod/prebuilt/64-bit/libfmod.so
cd ./external/linux-specific/fmod/prebuilt/64-bit/
ln -s libfmod.so libfmod.so.6
10,cd ~/Downloads/cocos2d-x-3.14.1/build/linux/bin/cpp-tests
export LD_LIBRARY_PATH=/home/hgc/Downloads/cocos2d-x-3.14.1/external/linux-specific/fmod/prebuilt/64-bit; ./cpp-tests
第三部分 linux平台上的c++ demo
1,准备工作
cd ~/Downloads/cocos2d-x-3.14.1
python setup.py,一路回车(编译linux平台上的可执行程序与android无关,相关路径可以先忽略)
source /home/hgc/.bashrc
2,新建项目
cd ~/workspace/cocos; cocos new -p com.your_company.mygame -l cpp -d . MyGame
3,cd MyGame
编译+运行:cocos run -p linux -j 4
用cocos compile命令只做编译。
第四部分 Android环境搭建
1,安装ant
sudo apt-get install ant
2,
从http://www.androiddevtools.cn上下载Android sdk tools(后续通过tools安装Android sdk)
从http://www.androiddevtools.cn/上下载NDK(r11+)
能翻墙的话从Android官网下载。
3,cd ~/Downloads/android-sdk-linux/tools;
./android
打开Android SDK Manager,Android SDK Manage负责下载或更新不同版本的SDK包。
到底需要下载哪些东西,参考:https://www.zhihu.com/question/31935836 。我的方案是:
Tools下只需装前三项,即最新版本的
sdk只需装最新的Android7.1.1 API25(其中的SDK platform,如果需要运行模拟器,可以安装一个image,如google apis intel x86 atom system image)
extra不需要
不能下载表示有墙,需要设置代理,选择http://www.androiddevtools.cn/里的腾讯镜像进行更新,中断时多试几次。
4,cd ~/Downloads/cocos2d-x-3.14.1
python setup.py,按提示设置环境变量,如下:
NDK_ROOT=/home/hgc/Downloads/android-ndk-r13b
ANDROID_SDK_ROOT=/home/hgc/Downloads/android-sdk-linux
ANT_ROOT=/usr/share/ant/bin
source /home/hgc/.bashrc
5,进入MyGame目录,执行cocos compile -p android -j 4 -m debug --ap android-25 --app-abi armeabi:armeabi-v7a:x86
目标文件在./bin/debug/android/MyGame-debug.apk
如果要编译release版本,需要先创建keystore:
keytool -genkey -alias mygame -keyalg RSA -validity 36500 -keystore mygame.keystore
说明:
genkey 产生密钥
-alias 别名
-keyalg RSA 使用RSA算法对签名加密
-validity 单位:天
-keystore 文件名
会要求输入keystore的密码,以及组织名字等相关信息,一路回车,最后输入yes,填好后在当前目录生成keystore文件:
release版本编译完后,会提示你输入keystore文件。
参考:http://blog.csdn.net/lzq0101/article/details/45731529
6,新建工程后第一次编译比较慢,且每个工程占用磁盘空间过大,可以通过cocos gen-libs命令解决,参考:http://discuss.cocos2d-x.org/t/how-to-speed-up-cocos2d-x-build-with-prebuilt-lib/23402
具体操作如下:
(1)新建一个cpp工程game,cocos new -p com.your_company.game -l cpp -d . game
(2)cd game; cocos gen-libs -p android -m debug --ap android-25 --app-abi armeabi:armeabi-v7a:x86,生成prebuilt库。其中--app-abi armeabi:armeabi-v7a:x86是可选的,是为了支持x86指令集的模拟器和armeabi-v7a的目标机,默认是armeabi指令集。
ps armeabi和armeabi-v7a表示cpu的类型,我们知道一般的手机或平板都是用arm的cpu(mips的就悲催的被忽视了),armeabi就是针对普通的或旧的arm v5 cpu,armeabi-v7a是针对有浮点运算或高级扩展功能的arm v7 cpu。
armeabi通用性强,但速度慢,而v7a能充分发挥cpu的性能。
(3)新建的工程都会把cocos2d-x源码拷贝一份,可以删掉。rm -rf cocos2d
(4)修改proj.android/build-cfg.json,增加一项prebuilt-mk,且路径都改为绝对路径,如下:
{
"ndk_module_path" :[
"/home/hgc/Downloads/cocos2d-x-3.14.1",
"/home/hgc/Downloads/cocos2d-x-3.14.1/cocos/prebuilt-mk",
"/home/hgc/Downloads/cocos2d-x-3.14.1/cocos",
"/home/hgc/Downloads/cocos2d-x-3.14.1/external"
],
"copy_resources": [
{
"from": "../Resources",
"to": ""
}
]
}
(5)修改proj.android/jni/Android.mk,注释掉已有的import-add-path,增加一项prebuilt-mk,且路径都改为绝对路径,如下:
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
# by hgc begin
# $(call import-add-path,$(LOCAL_PATH)/../../cocos2d)
# $(call import-add-path,$(LOCAL_PATH)/../../cocos2d/external)
# $(call import-add-path,$(LOCAL_PATH)/../../cocos2d/cocos)
# $(call import-add-path,$(LOCAL_PATH)/../../cocos2d/cocos/audio/include)
$(call import-add-path,/home/hgc/Downloads/cocos2d-x-3.14.1/cocos/prebuilt-mk)
# by hgc end
LOCAL_MODULE := MyGame_shared
LOCAL_MODULE_FILENAME := libMyGame
LOCAL_SRC_FILES := hellocpp/main.cpp \
../../Classes/AppDelegate.cpp \
../../Classes/HelloWorldScene.cpp
LOCAL_C_INCLUDES := $(LOCAL_PATH)/../../Classes
# _COCOS_HEADER_ANDROID_BEGIN
# _COCOS_HEADER_ANDROID_END
LOCAL_STATIC_LIBRARIES := cocos2dx_static
# _COCOS_LIB_ANDROID_BEGIN
# _COCOS_LIB_ANDROID_END
include $(BUILD_SHARED_LIBRARY)
$(call import-module,.)
# _COCOS_LIB_IMPORT_ANDROID_BEGIN
# _COCOS_LIB_IMPORT_ANDROID_END
(6)修改project.properties,将路径改为/home/hgc/Downloads/cocos2d-x-3.14.1的相对路径,注意一定要是相对路径,如下:
android.library.reference.1=../../../../Downloads/cocos2d-x-3.14.1/cocos/platform/android/java
(7)删除其它无用的子工程文件夹,只留Classes/ proj.android/ Resources/ .cocos-project.json这几个。将该工程保存为基准工程,提交到git上,后续新建项目以此为对照。
7,命令帮助
cocos --help
cocos compile --help
为了在x86指令集的模拟器和armeabi-v7a的目标机上运行,在cocos compile的时候可以加上--app-abi armeabi:armeabi-v7a:x86
第五部分 模拟器调试和gdb真机调试
1,模拟器调试
使用Android SDK Manager安装android-25中的google apis intel x86 atom system image
在Android SDK Manager的Tools菜单中,选择Manage AVDs,创建x86模拟器,然后启动。注意:模拟器启动后如果报“your cpu does not support required features vt-x or svm”,则要在bios中开启,参考:http://www.veryhuo.com/a/view/110093.html。虚拟机直接在设置中勾选。
将apk安装到模拟器中:cd bin/debug/android; adb install ddz-debug.apk
在模拟器中点击app即可启动。
在proj.android/libs/x86目录下有三个文件:
gdbserver gdb.setup libMyGame.so
将gdbserver和so文件复制到模拟器的/data目录下,命令如下:
adb root
adb push gdbserver /data
adb push libMyGame.so /data
执行adb shell命令,进入模拟器的命令行,然后:
执行ps查看app的pid
cd /data
./gdbserver :5039 --attach pid
会看到 Listening on port 5039 这代表正在监听。
回到linux 控制台,执行:
adb forward tcp:5039 tcp:5039
将proj.android/libs/x86目录下的gdb.setup拷贝到proj.android目录下,
cd proj.android; gdb -x gdb.setup,进入gdb命令行,然后:
target remote :5039 连接 gdbserver进行调试
l 查看代码
接下来就可以使用gdb打断点进行调试了。
2,gdb真机调试:
http://blog.csdn.net/AtlanticEvix/article/details/45028797?locationNum=1&fps=1