先说明一下本人的技术与岗位背景吧,方便你们理解,要吐槽的请当看笑话一下样,跳过!html
APPNAME="HeroLegend" # options buildexternalsfromsource= usage(){ cat << EOF usage: $0 [options] Build C/C++ code for $APPNAME using Android NDK OPTIONS: -s Build externals from source -h this help EOF } while getopts "sh" OPTION; do case "$OPTION" in s) buildexternalsfromsource=1 ;; h) usage exit 0 ;; esac done # paths if [ -z "${NDK_ROOT+aaa}" ];then echo "please define NDK_ROOT" exit 1 fi DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" # ... use paths relative to current directory COCOS2DX_ROOT="$DIR/../../opencore" GOODSDK="$DIR/../../SDK/XIAOMISdk" APP_ROOT="$DIR/.." APP_ANDROID_ROOT="$DIR" # run ndk-build if [[ "$buildexternalsfromsource" ]]; then "$NDK_ROOT"/ndk-build -C "$APP_ANDROID_ROOT" $* \ "NDK_MODULE_PATH=${COCOS2DX_ROOT}:${COCOS2DX_ROOT}/cocos2dx/platform/third_party/android/source" else "$NDK_ROOT"/ndk-build -C "$APP_ANDROID_ROOT" $* \ "NDK_MODULE_PATH=${COCOS2DX_ROOT}:${COCOS2DX_ROOT}/cocos2dx/platform/third_party/android/prebuilt" fi
echo ------------------------------------------ echo '如今开始build包了哦,请耐心等待' echo 'create by Windy Chen' echo 'if founded the problem, please call me !' echo 'Email: chiefcto@gmail.com' echo ------------------------------------------ dir="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" function check() { bb=`echo $1|grep 'proj.android'|wc -l` if [ $bb = 0 ] then echo "not an android project" else bbb=`echo $1|grep 'proj.android_pmangplus'|wc -l` if [ $bbb = 0 ] then echo "Copy the *.so file to this project($1)" echo 'Please waitting for a while' echo ------------------------------------------ $1/build_native.sh echo ------------------------------------------ else echo "This is PmangPlus, not contain" fi fi } # 编译c++文件 echo 如今开始作有sdk的游戏原码进行编译 #"$dir"/HeroLegend/proj.android_CPL_SDK/build_native.sh # 复制.so游戏库 echo 把proj.android_CPL_SDK里的libgdmmo4.so复制到所要的工程下 echo 工程在includeProject里配置 echo 开始copy cat includeProject | while read project; do echo 开始copy$project "$dir"/HeroLegend/"proj.android_$project"/build_native.sh done #for file in "$dir"/HeroLegend/* #do # if [ -d "$file" ]; then # check $file # fi #done #当全部的资源都已经复制到游戏目录的时候,开始用gradle打包 echo 如今开始使用gradle打包游戏包 echo 打包所要gradle环境 echo 开始打包 echo waitting for a while gradle build echo 若是中途没有中断,没有出现failed,那么就打包成功了!
task copyNativeLibs(type: Copy) { from(new File('libs')) into new File(buildDir, 'native-libs') } tasks.withType(Compile) { compileTask -> compileTask.dependsOn copyNativeLibs } clean.dependsOn 'cleanCopyNativeLibs' tasks.withType(com.android.build.gradle.tasks.PackageApplication) { pkgTask -> pkgTask.jniFolders = new HashSet<File>() pkgTask.jniFolders.add(new File(buildDir, 'native-libs')) }
android{ } signingConfigs { myConfig{ storeFile file("../XXX.keystore") storePassword "******" keyAlias "keyAlias" keyPassword “*******" } } buildTypes{ release { signingConfig signingConfigs.myConfig } }