缺少Android SDK:repositories.cfg
我正在尝试为android编程设置环境,但遇到以下错误:缺少Android SDK:repositories.cfg,android,android-sdk-tools,android-sdk-manager,Android,Android Sdk Tools,Android Sdk Manager,我正在尝试为android编程设置环境,但遇到以下错误: ./sdkmanager --update Warning: File /home/user/.android/repositories.cfg could not be loaded. [=======================================] 100% Computing updates... 我见过其他线程,人们说(或者更确切地说是猜测),我应该创建那个文件。但我不是那种只凭猜测改变系统而不
./sdkmanager --update
Warning: File /home/user/.android/repositories.cfg could not be loaded.
[=======================================] 100% Computing updates...
我见过其他线程,人们说(或者更确切地说是猜测),我应该创建那个文件。但我不是那种只凭猜测改变系统而不了解后果的人。我的意思是,在这种情况下,这样做并不觉得太错误,但是为什么sdkmanager在需要时不创建该文件呢?我的意思是sdkmanager已经创建了一个隐藏的文件夹
.android
,里面有这么多文件,开发人员怎么会认为“创建文件仓库.cfg是一件需要小心的事情,我们不要自己创建并警告用户”?我创建了一个空文本文件“repositories.cfg”,这是真的,错误消失了,但是没有下载任何内容,因为文件中没有存储库。所以“解决方案”并不能解决任何问题。它只是隐藏错误,但不允许下载sdk工具。别费心了。我的建议是,下载完整的Android Studio并安装它。然后把你需要的部件放到它们自己的文件夹中,并指向系统变量中的部件。然后你可以卸载Android Studio(如果你想要的只是像我一样的工具)。在尝试解释之前,请注意消息显示的是警告而不是错误。
警告:无法加载File repositories.cfg。
这只是一个警告,因为此文件旨在供用户(开发人员)添加sdk存储库源的列表
注意此文件是一个属性文件,每行包含一个属性,格式为:KEY=VALUE
因此,sdkmanager有自己的sdk存储库源列表,允许您将自己的源添加到此文件中,作为用户级的列表
答案:
在一些线程中,我看到这个问题的答案建议只创建repositories.cfg
文件:
mkdir-p~/.android&&touch~/.android/repositories.cfg
喜欢
其他答案建议在创建文件后添加以下行:
### User Sources for Android SDK Manager
count=0
就像,两种解决方案都有效
原因:
为了更好地理解发生了什么,我们需要查看处理此部分的源文件
这里有一个链接,指向在提交时引入此行为的。
文件和行为可能会随着时间的推移而改变,但这将有助于了解发生了什么
// Line 35-39
String KEY_COUNT = "count";
String KEY_SRC = "src";
String SRC_FILENAME = "repositories.cfg";
ArrayList<RepoSource> mSources = new ArrayList<RepoSource>();
在这里(第86-92行),如果文件存在,我们将其作为属性实例加载,然后查找键count
,如果未找到,则返回0,否则稍后在代码中查找src
键以将找到的源添加到数组中
因此,当文件为空时,是否有count
键并不重要,因为它默认为count=0
您可以注意到,当这个repositories.cfg
文件不退出时,它什么也不做,甚至不显示警告
这意味着当时,开发人员使用这个解决方案时甚至没有注意到他们可以使用repositories.cfg
,因为没有显示任何内容
我希望这能提供您所需的信息。如果您有时间,请阅读我的答案。您可以使用
sdkmanager--list
查看已安装的内容以及可供下载的内容。从路径列中选择要下载的内容,然后可以使用sdkmanager“path”
进行下载。例如:sdkmanager“平台;android-23”“源代码;android-23”
// Lines 71 - 120
public void loadUserSources()