我想从命令行设置Android开发环境,遇到以下问题:
wget http://dl.google.com/android/android-sdk_r22.0.5-linux.tgz
解压完成后,运行
tools/android update sdk --no-ui
但是,它跑起来太慢了
Fetching https://dl-ssl.google.com/android/repository/addons_list-2.xml
结果是在文件夹build-tools中什么都没有,我想要的是apapt和apkbuilder,因为我想从命令行构建apk而没有ant。
不建议使用“android”命令。
命令行工具使用“tools/bin/sdkmanager”和“tools/bin/avdmanager”
如果你不需要Android Studio,你可以从developer.android.com的命令行工具部分下载基本的Android命令行工具。
从CLI来看,它应该是这样的:
curl --output sdk-tools-linux.zip https://dl.google.com/android/repository/sdk-tools-linux-4333796.zip
or
wget --output-document sdk-tools-linux.zip https://dl.google.com/android/repository/sdk-tools-linux-4333796.zip
在此之后,只需将存档解压缩到目标文件夹
unzip sdk-tools-linux.zip
现在我们可以安装你需要的一切…
./tools/bin/sdkmanager --install 'build-tools;29.0.2' 'platform-tools' 'platforms;android-29' 'tools'
可以使用./tools/bin/sdkmanager——list命令获取完整的软件包列表
有些包要求接受许可协议。你可以交互地接受它,或者只是把“y”传递给输入流,就像这样(如果有两个协议):
echo -ne "y\ny" | ./tools/bin/sdkmanager --install 'system-images;android-29;default;x86_64'
当然,为了方便起见,您可以导出诸如ANDROID_HOME或ANDROID_SDK_ROOT这样的变量(包括在~/中执行)。profile或~/.bash_profile)或修补PATH变量-所有这些都由您自行决定。
脚本的例子:
mkdir /opt/android-sdk
cd /opt/android-sdk
curl --output sdk-tools-linux.zip https://dl.google.com/android/repository/sdk-tools-linux-4333796.zip
unzip sdk-tools-linux.zip
echo -ne "y" | ./tools/bin/sdkmanager --install 'build-tools;29.0.2' 'platform-tools' 'platforms;android-29' 'tools'
要求:
卷曲(或wget)并解压缩
故障排除:
如果你看到警告:无法创建设置,你需要在ANDROID_HOME中的cmdline-tools目录中有工具目录(如果需要创建它,使用这个确切的名称)见Android命令行工具sdkmanager总是显示:警告:无法创建设置
构建工具在默认情况下不能自动下载,就像Nate在https://stackoverflow.com/a/19416222/1104031的帖子中说的那样。
但是我写了一个小工具,为你做一切
我在https://stackoverflow.com/a/17863931/1104031的帖子中使用了“期望”工具作为danb。
你只需要android-sdk和python27。
这个脚本将安装所有的构建工具,所有的sdk和自动构建所需的一切:
import subprocess,re,sys
w = subprocess.check_output(["android", "list", "sdk", "--all"])
lines = w.split("\n")
tools = filter(lambda x: "Build-tools" in x, lines)
filters = []
for tool in tools:
m = re.search("^\s+([0-9]+)-", tool)
tool_no = m.group(1)
filters.append(tool_no)
if len(filters) == 0:
raise Exception("Not found build tools")
filters.extend(['extra', 'platform', 'platform-tool', 'tool'])
filter = ",".join(filters)
expect= '''set timeout -1;
spawn android update sdk --no-ui --all --filter %s;
expect {
"Do you accept the license" { exp_send "y\\r" ; exp_continue }
eof
}''' % (filter)
print expect
ret = subprocess.call(["expect", "-c", expect])
sys.exit(ret)
不建议使用“android”命令。
命令行工具使用“tools/bin/sdkmanager”和“tools/bin/avdmanager”
如果你不需要Android Studio,你可以从developer.android.com的命令行工具部分下载基本的Android命令行工具。
从CLI来看,它应该是这样的:
curl --output sdk-tools-linux.zip https://dl.google.com/android/repository/sdk-tools-linux-4333796.zip
or
wget --output-document sdk-tools-linux.zip https://dl.google.com/android/repository/sdk-tools-linux-4333796.zip
在此之后,只需将存档解压缩到目标文件夹
unzip sdk-tools-linux.zip
现在我们可以安装你需要的一切…
./tools/bin/sdkmanager --install 'build-tools;29.0.2' 'platform-tools' 'platforms;android-29' 'tools'
可以使用./tools/bin/sdkmanager——list命令获取完整的软件包列表
有些包要求接受许可协议。你可以交互地接受它,或者只是把“y”传递给输入流,就像这样(如果有两个协议):
echo -ne "y\ny" | ./tools/bin/sdkmanager --install 'system-images;android-29;default;x86_64'
当然,为了方便起见,您可以导出诸如ANDROID_HOME或ANDROID_SDK_ROOT这样的变量(包括在~/中执行)。profile或~/.bash_profile)或修补PATH变量-所有这些都由您自行决定。
脚本的例子:
mkdir /opt/android-sdk
cd /opt/android-sdk
curl --output sdk-tools-linux.zip https://dl.google.com/android/repository/sdk-tools-linux-4333796.zip
unzip sdk-tools-linux.zip
echo -ne "y" | ./tools/bin/sdkmanager --install 'build-tools;29.0.2' 'platform-tools' 'platforms;android-29' 'tools'
要求:
卷曲(或wget)并解压缩
故障排除:
如果你看到警告:无法创建设置,你需要在ANDROID_HOME中的cmdline-tools目录中有工具目录(如果需要创建它,使用这个确切的名称)见Android命令行工具sdkmanager总是显示:警告:无法创建设置