Android 构建错误:"aapt2: error=2, No such file or directory"

Error on Android build: "aapt2: error=2, No such file or directory"

在构建服务器上出现以下错误。

Download https://dl.google.com/dl/android/maven2/com/android/tools/build/aapt2/3.2.0-beta05-4818971/aapt2-3.2.0-beta05-4818971-linux.jar

...

Caused by: java.io.IOException: Cannot run program "/root/.gradle/caches/transforms-1/files-1.1/aapt2-3.2.0-beta05-4818971-linux.jar/43bd0f91870a1f4f8e99e05eefb192e9/aapt2-3.2.0-beta05-4818971-linux/aapt2": error=2, No such file or directory
    at com.android.builder.internal.aapt.v2.Aapt2DaemonImpl.startProcess(Aapt2DaemonImpl.kt:80)
    at com.android.builder.internal.aapt.v2.Aapt2Daemon.checkStarted(Aapt2Daemon.kt:53)
    ... 8 more
Caused by: java.io.IOException: error=2, No such file or directory
    ... 10 more

Full build log

查看下载的 jar,它要查找的文件似乎位于 jar 文件的根目录中。不确定为什么要在 43bd0f91870a1f4f8e99e05eefb192e9/aapt2-3.2.0-beta05-4818971-linux/

中找到它

使用的版本:

gradle-4.8-all.zip
classpath 'com.android.tools.build:gradle:3.2.0-beta05'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:1.2.51"

compileSdkVersion 28
buildToolsVersion '28.0.2'
minSdkVersion 23
targetSdkVersion 28

要使 aapt 工作(这也解决了我与 avd 的问题)只需 运行 这两个命令:

sudo apt-get install lib32stdc++6
sudo apt-get install lib32z1

它应该有效!!

在我的特殊情况下,它是在高山 linux 发行版上,这使得安装有点棘手。

基本上需要安装这个:https://github.com/sgerrand/alpine-pkg-glibc

Docker代码:

RUN echo "Installing standard dependencies..." \
  && apk add --no-cache --update --virtual=.build-dependencies \
    ca-certificates \
    wget \
  # ---------------------------------------------
  && echo "Installing glibc..." \
  && wget https://alpine-pkgs.sgerrand.com/sgerrand.rsa.pub -O /etc/apk/keys/sgerrand.rsa.pub \
  && wget https://github.com/sgerrand/alpine-pkg-glibc/releases/download/${GLIBC_VERSION}/glibc-${GLIBC_VERSION}.apk -O /tmp/glibc.apk \
  && wget https://github.com/sgerrand/alpine-pkg-glibc/releases/download/${GLIBC_VERSION}/glibc-bin-${GLIBC_VERSION}.apk -O /tmp/glibc-bin.apk \
  && apk add --no-cache /tmp/glibc.apk /tmp/glibc-bin.apk