Quo*_*oon 2 android amazon-web-services aws-codebuild
我正在尝试在AWS服务器中安装Android环境.这里是buildspec.yml文件,其中包含用于安装Android SDK,NDK和gradlew以生成android构建的命令集.SDK和NDK for Android已成功下载并安装在AWS Ubuntu系统上.即使我可以看到成功构建的./gradlew构建日志.
buildspec.yml
version: 0.1
phases:
install:
commands:
- echo Nothing to do in the install phase...
- sudo apt-get -y install wget
pre_build:
commands:
- echo Nothing to do in the pre_build phase...
- wget http://dl.google.com/android/android-sdk_r24.4.1-linux.tgz
- tar zxvf android-sdk_r24.4.1-linux.tgz
- mkdir -p android-sdk-linux/licenses
- cp android-sdk-license ./android-sdk-linux/licenses/
- echo sdk.dir='pwd'/android-sdk-linux > local.properties
- wget https://dl.google.com/android/repository/android-ndk-r13b-linux-x86_64.zip
- unzip android-ndk-r13b-linux-x86_64.zip
- export ANDROID_NDK_HOME=`pwd`/android-ndk-r13b
- export PATH=${PATH}:${ANDROID_HOME}/tools:${ANDROID_HOME}/platform-tools:${ANDROID_NDK_HOME}
- echo "sdk.dir=$ANDROID_HOME" > local.properties
- echo "ndk.dir=$ANDROID_NDK_HOME" >> local.properties
build:
commands:
- root/./gradlew --debug --stacktrace build
- root/./gradlew assemble
post_build:
commands:
- echo Build completed on `date`
artifacts:
files:
- Monoca/app/**/*
Run Code Online (Sandbox Code Playgroud)
当我尝试为Android版本执行./gradlew汇编命令时,它可以在Android Studio的Android输出目录中生成应用程序文件(.apk),但遗憾的是它无法在AWS CodeBuild环境中运行.
有人对这个问题有深刻见解吗?如果您在安装部件中发现任何问题,请建议.
我认为这里的问题是在CodeBuild不遵循的命令之间传播环境变量值.CodeBuild在新shell中执行每个命令.最后2个命令实际上将sdk.dir和ndk.dir变量设置为空(您可以通过运行来验证这一点cat local.properties).
- echo "sdk.dir=$ANDROID_HOME" > local.properties
- echo "ndk.dir=$ANDROID_NDK_HOME" >> local.properties
这里正确的方法是将构建逻辑移动到从buildspec.yml执行的脚本
- ./my-gradle-build.sh
要么
不使用环境变量在local.properties中设置变量,而是使用路径.
- echo sdk.dir='pwd'/android-ndk-r13b > local.properties
- echo ndk.dir='pwd'/android-ndk-r13b >> local.properties
我希望这有帮助.
谢谢!
| 归档时间: |
|
| 查看次数: |
1014 次 |
| 最近记录: |