Android Studio对我的电脑来说太慢了,所以我开始自学如何手动构建Android应用程序。我完成了以下脚本:
#!/usr/bin/env bash
path=$(pwd)
rm -rf bin
rm -rf gen
mkdir bin
mkdir gen
APP_NAME="mygame"
ANDROID_REV="27.0.3"
ANDROID_PLATFORM_REV="android-27"
JAVAC="${JAVA_BIN}/javac -classpath ${ANDROID_SDK}/platforms/${ANDROID_PLATFORM_REV}/android.jar"
JAVAC_BUILD="${JAVAC} -sourcepath src -sourcepath gen -d bin"
${ANDROID_SDK}/build-tools/${ANDROID_REV}/aapt package -v -f -I ${ANDROID_SDK}/platforms/${ANDROID_PLATFORM_REV}/android.jar -M AndroidManifest.xml -A "assets" -S "res" -m -J "gen" -F bin/resources.ap_
${JAVAC_BUILD} src/com/mycompany/mygame/*.java
${ANDROID_SDK}/build-tools/${ANDROID_REV}/dx --dex --output=${path}/bin/classes.dex ${path}/bin
mv "${path}/bin/resources.ap_" "${path}/bin/${APP_NAME}.ap_"
${ANDROID_SDK}/build-tools/${ANDROID_REV}/aapt add ${path}/bin/${APP_NAME}.ap_ ${path}/bin/classes.dex
${ANDROID_SDK}/build-tools/${ANDROID_REV}/zipalign -f -v 4 ${path}/bin/${APP_NAME}.ap_ ${path}/bin/${APP_NAME}_unsigned.ap_
${ANDROID_SDK}/build-tools/${ANDROID_REV}/apksigner sign --ks ${path}/keystore/etamagotchi-release-key.keystore --ks-key-alias "mykeystore-alias" ${path}/bin/${APP_NAME}_unsigned.ap_
cp ${path}/bin/${APP_NAME}_unsigned.ap_ ${path}/bin/${APP_NAME}.apk
rm bin/*.ap_
rm bin/*.dex
它成功构建。如果我想跑
adb install mygame.apk
上面写着:
[INSTALL_FAILED_INVALID_APK: Package couldn't be installed in /data/app/com.mycompany.mygame-1: Package /data/app/com.mycompany.mygame-1/base.apk code is missing]
如果我手动尝试安装,它会显示“软件包似乎已损坏”。我的构建脚本有什么问题?