Docker找不到Android SDK和NDK目录
我创建了一个docker容器,以便在其上运行gradle任务。 我正在下载里面的sdk,但当我从外面运行任务时,它说找不到sdk文件夹,因为它获取的路径是我在项目的local.properties文件中的路径。指向我的机器sdk文件夹。如何在docker映像中指定sdk文件夹?谢谢 Docker映像生成文件:Docker找不到Android SDK和NDK目录,android,docker,Android,Docker,我创建了一个docker容器,以便在其上运行gradle任务。 我正在下载里面的sdk,但当我从外面运行任务时,它说找不到sdk文件夹,因为它获取的路径是我在项目的local.properties文件中的路径。指向我的机器sdk文件夹。如何在docker映像中指定sdk文件夹?谢谢 Docker映像生成文件: FROM openjdk:8 ENV SDK_URL="https://dl.google.com/android/repository/sdk-tools-linux-3859397.
FROM openjdk:8
ENV SDK_URL="https://dl.google.com/android/repository/sdk-tools-linux-3859397.zip" \
ANDROID_HOME="/usr/local/android-sdk" \
ANDROID_NDK_HOME="/usr/local/android-sdk/ndk-bundle" \
ANDROID_VERSION=26 \
ANDROID_BUILD_TOOLS_VERSION=26.0.2
# Download Android SDK
RUN mkdir "$ANDROID_HOME" .android \
&& cd "$ANDROID_HOME" \
&& curl -o sdk.zip $SDK_URL \
&& unzip sdk.zip \
&& rm sdk.zip \
&& yes | $ANDROID_HOME/tools/bin/sdkmanager --licenses
# add to PATH
ENV PATH ${PATH}:${ANDROID_HOME}
ENV ANDROID_NDK_HOME /usr/local/android-ndk
ENV ANDROID_NDK_VERSION r19
ENV NDK_URL="https://dl.google.com/android/repository/android-ndk-${ANDROID_NDK_VERSION}-linux-x86_64.zip"
# Download Android NDK
RUN mkdir "$ANDROID_NDK_HOME" \
&& cd "$ANDROID_NDK_HOME" \
&& curl -o ndk.zip $NDK_URL \
&& unzip ndk.zip \
&& rm ndk.zip
# add to PATH
ENV PATH ${PATH}:${ANDROID_NDK_HOME}
# Install Android Build Tool and Libraries
RUN $ANDROID_HOME/tools/bin/sdkmanager --update
RUN $ANDROID_HOME/tools/bin/sdkmanager "build-tools;${ANDROID_BUILD_TOOLS_VERSION}" \
"platforms;android-${ANDROID_VERSION}" \
"platform-tools"
RUN mkdir /application
WORKDIR /application
以下是我运行任务的方式:
docker run -it --rm -v "$PWD":/application packsdkandroiddocker.image sh -c "$@" ./gradlew clean
这就是我得到的错误:
NDK缺少一个“平台”目录。如果您正在使用NDK,请验证
ndk.dir被设置为有效的ndk目录。它当前设置为
/Users/adalpari/Library/Android/sdk/ndk包。如果您不使用
NDK,从ANDROID\u NDK\u HOME或local.properties中取消设置NDK变量
删除此警告
失败:生成失败,出现异常
- 错误:配置项目“:app”时出现问题。 SDK目录“/Users/adalpari/Library/Android/SDK”不存在
我认为您需要从根文件夹中删除local.properties文件,因为SDK将在本地搜索哪个容器无法访问。我认为您需要从根文件夹中删除local.properties文件,因为SDK将在本地搜索哪个容器无法访问