zak*_*jma 5 android gradle docker aapt2
我尝试在 docker 容器上运行 android 构建。
我的 dockerfile 的内容在这里:
FROM openjdk:8-jre-alpine
RUN mkdir -p /myapp
WORKDIR /myapp
COPY . .
RUN apk add --update nodejs nodejs-npm
RUN apk add git
RUN apk add zip
RUN apk --no-cache add curl
Run Code Online (Sandbox Code Playgroud)
我创建了一个 docker 镜像并运行它。我在 docker 终端上运行以下命令。
wget https://dl.google.com/android/repository/sdk-tools-linux-4333796.zip
unzip -q sdk-tools-linux-4333796.zip -d Android-sdk
export ANDROID_HOME=/path-to-sdk/Android-sdk
export PATH=${PATH}:${ANDROID_HOME}/tools:${ANDROID_HOME}/tools/bin:${ANDROID_HOME}/platform-tools
yes | sdkmanager --licenses
cd MyApplication && chmod +x gradlew && ./gradlew :app:assembledebug
Run Code Online (Sandbox Code Playgroud)
MyApplication 是 Android Studio 默认的空 Activity 项目。
错误日志在这里:
/gradlew :应用程序:assembledebug
任务 :app:preBuild 最新 任务 :app:preDebugBuild 最新 任务 :app:compileDebugAidl NO-SOURCE 任务 :app:compileDebugRenderscript 最新 任务 :app:checkDebugManifest 最新 任务 : app:generateDebugBuildConfig 最新任务 :app:prepareLintJar 最新任务 :app:mainApkListPersistenceDebug 最新任务 :app:generateDebugResValues 最新任务 :app:generateDebugResources 最新任务 :应用程序:合并调试资源失败
失败:构建失败并出现异常。
出了什么问题:任务“:app:mergeDebugResources”执行失败。
java.util.concurrent.ExecutionException: com.android.builder.internal.aapt.v2.Aapt2InternalException: AAPT2 aapt2-3.3.0-alpha12-5013011-linux Daemon #0: Daemon 启动失败
这在正常情况下不应该发生,请如果确实如此,请提出问题。尝试:使用 --stacktrace 选项运行以获取堆栈跟踪。使用 --info 或 --debug 选项运行以获得更多日志输出。使用 --scan 运行以获得完整的见解。
在https://help.gradle.org获取更多帮助
编辑
这个项目在我的 Mac 笔记本电脑上运行良好。本地机器构建没问题,但在 docker 容器上不起作用。
编辑
我运行--stacktrace参数。未找到 aapt2
引起:java.io.IOException:无法运行程序“/root/.gradle/caches/transforms-1/files-1.1/aapt2-3.2.0-4818971-linux.jar/6f8af69a2b8f839763b018ee3b5c1d41/aapt2-3.2.0-4818971 -linux/aapt2": error=2, com.android.builder.internal.aapt.v2.Aapt2DaemonImpl.startProcess(Aapt2DaemonImpl.kt:80) 处没有此类文件或目录 com.android.builder.internal.aapt.v2 .Aapt2Daemon.checkStarted(Aapt2Daemon.kt:53) ... 8 更多 引起:java.io.IOException: error=2, 没有这样的文件或目录 ... 10 更多
在 docker 镜像中遇到了同样的问题openjdk:8-jre-alpine。
oracle/openjdk:8当我用作基础图像时,问题得到解决
像这样更改你的 Dockerfile 并重试:
FROM oracle/openjdk:8
RUN mkdir -p /myapp
WORKDIR /myapp
COPY . .
RUN yum install -y nodejs nodejs-npm
RUN yum install -y git zip curl
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
10371 次 |
| 最近记录: |