先說明一下本人的技術與崗位背景吧,方便你們理解,要吐槽的請當看笑話一下樣,跳過!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 } }