【问题标题】:Android SDK on Alpine - adb No such file or directoryAlpine 上的 Android SDK - adb 没有这样的文件或目录
【发布时间】:2019-06-15 11:13:02
【问题描述】:

我正在尝试构建一个包含 Android SDK 的 Alpine 映像 - 特别是 platform-tools 包。

我的 Dockerfile 执行以下操作:

  1. 安装 Java 并设置 JAVA_HOME(Android 需要)。
  2. 从 Google 下载 Android SDK 工具。
  3. 解压缩包。
  4. 设置ANDROID_HOME。还设置PATH,以便可以使用sdkmanager 可执行文件。
  5. 使用sdkmanager 安装platform-tools
  6. platform-tools 添加到PATH

platform-tools 包含一个名为adb 的可执行文件,但由于某种原因无法看到它。运行adb 返回:

bash: /android-sdk/platform-tools/adb: No such file or directory

这是我的 Dockerfile:

FROM alpine:latest

# Install bash and java
RUN apk update
RUN apk add bash openjdk8
ENV JAVA_HOME=/usr/lib/jvm/java-1.8-openjdk
ENV PATH="$PATH:$JAVA_HOME/bin"

# Download Android SDK and set PATH
RUN mkdir /android-sdk
RUN wget https://dl.google.com/android/repository/sdk-tools-linux-4333796.zip && unzip *.zip -d /android-sdk && rm *.zip
ENV ANDROID_HOME="/android-sdk"
ENV PATH="$PATH:$ANDROID_HOME/tools/bin"

# Install platform-tools
RUN yes | sdkmanager "platform-tools"
ENV PATH="$PATH:$ANDROID_HOME/platform-tools"
RUN adb version # throws error: adb not found

我查看了this question,但应该使用 platform-tools v24.0 及更高版本解决问题。

【问题讨论】:

    标签: android adb alpine


    【解决方案1】:

    Alpine 使用 musl libc 而不是 glibc and friends,因此某些软件可能会遇到问题,具体取决于其 libc 要求的深度。

    adb是用glibc编译的,所以不能在Alpine中运行,一般会报错:No such file or directory

    您可以通过运行file <path to file> | grep "interpreter /lib64/ld-linux-x86-64.so.2" 来验证文件是否使用glibc 编译。

    【讨论】:

      【解决方案2】:

      你可以像这样安装android-tools

      RUN apk add \
          android-tools \
          --repository=http://dl-cdn.alpinelinux.org/alpine/edge/testing
      

      关键是如图设置--repository,因为它只在边缘测试仓库中。

      我不认为它包含整个 SDK,因此可能还需要下载和解压缩其他工具。我不知道这是否能处理你想要的一切,但adb 至少会打印一份帮助文档。

      【讨论】:

        【解决方案3】:

        这可能会有所帮助,尽管在使用兼容层时,我在 Alpine Linux 上的 Gradle 守护程序会随机崩溃。

        gcompat 是 Alpine 用户的首选兼容层。

        apk 添加 gcompat

        之后,您可以正常运行二进制文件。

        来源:https://wiki.alpinelinux.org/wiki/Running_glibc_programs

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2013-03-13
          • 2015-08-17
          • 2014-10-25
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2015-01-22
          相关资源
          最近更新 更多