如何在Arch系统中用sdkmanager安装build-tools?遇权限及密钥错误求助
Arch Linux下sdkmanager安装build-tools;33.0.1的问题解决
问题1:普通用户执行无权限
错误信息
$ sdkmanager "build-tools;33.0.1" Traceback (most recent call last): File "/usr/bin/sdkmanager", line 33, in <module> sys.exit(load_entry_point('sdkmanager==0.6.0', 'console_scripts', 'sdkmanager')()) File "/usr/lib/python3.10/site-packages/sdkmanager.py", line 1141, in main method(args.packages) File "/usr/lib/python3.10/site-packages/sdkmanager.py", line 972, in install install_dir.parent.mkdir(parents=True, exist_ok=True) File "/usr/lib/python3.10/pathlib.py", line 1175, in mkdir self._accessor.mkdir(self, mode) PermissionError: [Errno 13] Permission denied: '/opt/android-sdk/build-tools'
解决方法
不要用sudo运行sdkmanager,而是修改/opt/android-sdk目录的权限,让当前普通用户拥有写入权限:
- 执行命令修改目录所属用户:
sudo chown -R $USER:$USER /opt/android-sdk - 验证权限修改成功:
输出应显示当前用户为目录的所有者。ls -ld /opt/android-sdk
问题2:sudo执行出现KeyError
错误信息
sdkmanager "build-tools;33.0.1" Traceback (most recent call last): File "/usr/bin/sdkmanager", line 33, in <module> sys.exit(load_entry_point('sdkmanager==0.6.0', 'console_scripts', 'sdkmanager')()) File "/usr/lib/python3.10/site-packages/sdkmanager.py", line 1141, in main method(args.packages) File "/usr/lib/python3.10/site-packages/sdkmanager.py", line 954, in install url = packages[key] KeyError: ('build-tools', '33.0.1')
解决方法
该错误是因为root用户环境下的sdkmanager未正确同步软件源索引,且sudo运行会导致配置路径与普通用户不一致。按以下步骤操作:
- 切换回普通用户(已解决权限问题后),先更新sdkmanager的源索引:
sdkmanager --update - 查看可用的build-tools版本,确认33.0.1存在:
sdkmanager --list | grep "build-tools" - 再次执行安装命令:
sdkmanager "build-tools;33.0.1"
备选方案
如果上述方法仍失败,可直接通过Arch官方包管理器安装对应版本的build-tools:
sudo pacman -S android-sdk-build-tools-33.0.1
内容的提问来源于stack exchange,提问作者chovy
相关产品推荐
相关产品推荐

