在 Android NDK zip 上解压 returns 非零代码 2(已测试多个版本)
unzip returns non-zero code 2 on Android NDK zip (tested multiple versions)
我 运行 使用简单的 docker 命令 (ubuntu:bionic
) 下载 Android NDK 并解压缩:
ENV ANDROID_NDK_VERSION r21d
ENV ANDROID_NDK_URL http://dl.google.com/android/repository/android-ndk-${ANDROID_NDK_VERSION}-linux-x86_64.zip
RUN curl -L "${ANDROID_NDK_URL}" -o android-ndk-${ANDROID_NDK_VERSION}-linux-x86_64.zip
RUN unzip android-ndk-${ANDROID_NDK_VERSION}-linux-x86_64.zip -d ${SDK_HOME}
但我总是得到(即使我删除所有内容并重新开始):
creating: /opt/android-ndk-r21d/wrap.sh/
inflating: /opt/android-ndk-r21d/wrap.sh/asan.sh
The command '/bin/sh -c unzip android-ndk-${ANDROID_NDK_VERSION}-linux-x86_64.zip -d ${SDK_HOME}' returned a non-zero code: 2
/opt/android-ndk-r21d/wrap.sh/asan.sh
是最后要解压的东西。在 r20
上,它是 inflating: /opt/android-ndk-r20/ndk-stack
,然后我得到同样的错误。
运行 按照下面的建议用 -v
解压缩会给出一个奇怪的输出:
16704 Defl:X 3281 80% 2019-05-22 12:47 80a0acc7 android-ndk-r20/sources/android/native_app_glue/android_native_app_glue.c
577 Defl:X 371 36% 2019-05-22 12:47 e63c146e android-ndk-r20/sources/android/native_app_glue/NOTICE
439 Defl:X 282 36% 2019-05-22 12:47 8fc9fc18 android-ndk-r20/sources/android/native_app_glue/Android.mk
0 Stored 0 0% 2019-05-22 12:47 00000000 android-ndk-r20/sources/android/renderscript/
577 Defl:X 371 36% 2019-05-22 12:47 e63c146e android-ndk-r20/sources/android/renderscript/NOTICE
813 Defl:X 234 71% 2019-05-22 12:47 bfbf4628 android-ndk-r20/sources/android/renderscript/Android.mk
2172 Defl:X 1117 49% 2019-05-22 12:47 43b8cf66 android-ndk-r20/CHANGELOG.md
92 Defl:X 86 7% 2019-05-22 12:50 250f0ae3 android-ndk-r20/ndk-stack
-------- ------- --- -------
3049400190 854740668 72% 18484 files
立即执行(解压缩没有延迟),然后图像继续构建,但当它完成时,解压缩的目标上没有任何内容。
我尝试下载 sdk r21c
,r21b
认为可能是 zip 存档的问题,但事实并非如此。容器是 ubuntu:bionic.
根据 man page 退出代码 2 是一般错误。
2
a generic error in the zipfile format was detected. Processing may
have completed successfully anyway; some broken zipfiles created by
other archivers have simple work-arounds.
运行 unzip
使用选项 -v
查看诊断输出,这应该有助于调试此问题。
编辑:我不太确定解压缩发生了什么,但以下对我有用:
FROM ubuntu:bionic
ENV SDK_HOME /var/ndk
ENV ANDROID_NDK_VERSION r21d
ENV ANDROID_NDK_URL http://dl.google.com/android/repository/android-ndk-${ANDROID_NDK_VERSION}-linux-x86_64.zip
RUN apt-get update && apt-get -y install curl unzip && apt-get clean && \
curl -L "${ANDROID_NDK_URL}" -o android-ndk-${ANDROID_NDK_VERSION}-linux-x86_64.zip && \
unzip -qq android-ndk-${ANDROID_NDK_VERSION}-linux-x86_64.zip -d ${SDK_HOME} && \
rm -f android-ndk-${ANDROID_NDK_VERSION}-linux-x86_64.zip && \
apt-get -y remove curl unzip && apt-get -y autoremove && rm -rf /var/lib/apt/lists/*
如果有帮助请告诉我
curl
大部分时间都在下载损坏的文件。使用来自 android 网站和下载文件的 sha1
进行压缩。
通过移动到 wget
它起作用了...
我 运行 使用简单的 docker 命令 (ubuntu:bionic
) 下载 Android NDK 并解压缩:
ENV ANDROID_NDK_VERSION r21d
ENV ANDROID_NDK_URL http://dl.google.com/android/repository/android-ndk-${ANDROID_NDK_VERSION}-linux-x86_64.zip
RUN curl -L "${ANDROID_NDK_URL}" -o android-ndk-${ANDROID_NDK_VERSION}-linux-x86_64.zip
RUN unzip android-ndk-${ANDROID_NDK_VERSION}-linux-x86_64.zip -d ${SDK_HOME}
但我总是得到(即使我删除所有内容并重新开始):
creating: /opt/android-ndk-r21d/wrap.sh/
inflating: /opt/android-ndk-r21d/wrap.sh/asan.sh
The command '/bin/sh -c unzip android-ndk-${ANDROID_NDK_VERSION}-linux-x86_64.zip -d ${SDK_HOME}' returned a non-zero code: 2
/opt/android-ndk-r21d/wrap.sh/asan.sh
是最后要解压的东西。在 r20
上,它是 inflating: /opt/android-ndk-r20/ndk-stack
,然后我得到同样的错误。
运行 按照下面的建议用 -v
解压缩会给出一个奇怪的输出:
16704 Defl:X 3281 80% 2019-05-22 12:47 80a0acc7 android-ndk-r20/sources/android/native_app_glue/android_native_app_glue.c
577 Defl:X 371 36% 2019-05-22 12:47 e63c146e android-ndk-r20/sources/android/native_app_glue/NOTICE
439 Defl:X 282 36% 2019-05-22 12:47 8fc9fc18 android-ndk-r20/sources/android/native_app_glue/Android.mk
0 Stored 0 0% 2019-05-22 12:47 00000000 android-ndk-r20/sources/android/renderscript/
577 Defl:X 371 36% 2019-05-22 12:47 e63c146e android-ndk-r20/sources/android/renderscript/NOTICE
813 Defl:X 234 71% 2019-05-22 12:47 bfbf4628 android-ndk-r20/sources/android/renderscript/Android.mk
2172 Defl:X 1117 49% 2019-05-22 12:47 43b8cf66 android-ndk-r20/CHANGELOG.md
92 Defl:X 86 7% 2019-05-22 12:50 250f0ae3 android-ndk-r20/ndk-stack
-------- ------- --- -------
3049400190 854740668 72% 18484 files
立即执行(解压缩没有延迟),然后图像继续构建,但当它完成时,解压缩的目标上没有任何内容。
我尝试下载 sdk r21c
,r21b
认为可能是 zip 存档的问题,但事实并非如此。容器是 ubuntu:bionic.
根据 man page 退出代码 2 是一般错误。
2 a generic error in the zipfile format was detected. Processing may have completed successfully anyway; some broken zipfiles created by other archivers have simple work-arounds.
运行 unzip
使用选项 -v
查看诊断输出,这应该有助于调试此问题。
编辑:我不太确定解压缩发生了什么,但以下对我有用:
FROM ubuntu:bionic
ENV SDK_HOME /var/ndk
ENV ANDROID_NDK_VERSION r21d
ENV ANDROID_NDK_URL http://dl.google.com/android/repository/android-ndk-${ANDROID_NDK_VERSION}-linux-x86_64.zip
RUN apt-get update && apt-get -y install curl unzip && apt-get clean && \
curl -L "${ANDROID_NDK_URL}" -o android-ndk-${ANDROID_NDK_VERSION}-linux-x86_64.zip && \
unzip -qq android-ndk-${ANDROID_NDK_VERSION}-linux-x86_64.zip -d ${SDK_HOME} && \
rm -f android-ndk-${ANDROID_NDK_VERSION}-linux-x86_64.zip && \
apt-get -y remove curl unzip && apt-get -y autoremove && rm -rf /var/lib/apt/lists/*
如果有帮助请告诉我
curl
大部分时间都在下载损坏的文件。使用来自 android 网站和下载文件的 sha1
进行压缩。
通过移动到 wget
它起作用了...