下载Android SDK Build Tools 19.1时,trustAnchors参数必须为非空错误

时间:2014-12-06 03:19:36

标签: java ssl android-studio

我刚刚将Android Studio升级到1.0RC4。我的一个Android项目使用较旧的buildToolVersion,因此Android工作室建议我升级到19.1.0但是从Android Studio下载时会出现以下错误:

Loading SDK information...
Refresh Sources:
  Failed to fetch URL https://dl-ssl.google.com/android/repository/addons_list-2.xml, reason: java.lang.RuntimeException: Unexpected error: java.security.InvalidAlgorithmParameterException: the trustAnchors parameter must be non-empty
  Fetched Add-ons List successfully
  Refresh Sources
  Failed to fetch URL https://dl-ssl.google.com/android/repository/repository-10.xml, reason: SSL java.lang.RuntimeException: Unexpected error: java.security.InvalidAlgorithmParameterException: the trustAnchors parameter must be non-empty
Refresh Sources:
  Failed to fetch URL https://dl-ssl.google.com/android/repository/repository-10.xml, reason: SSL java.lang.RuntimeException: Unexpected error: java.security.InvalidAlgorithmParameterException: the trustAnchors parameter must be non-empty
There is nothing to install or update.

我在google和SO上看到了几个相关的问题,但没有一个与Android Studio相关,也没有解决方案对我有用。

以下是有关我的环境的更多信息

File -> Project Structure
   Android SDK Location: /Applications/Android Studio.app/sdk
   JDK Location: /Library/Java/JavaVirtualMachines/jdk1.7.0_07.jdk/Contents/Home

$ java -version
java version "1.7.0_07"
Java(TM) SE Runtime Environment (build 1.7.0_07-b10)
Java HotSpot(TM) 64-Bit Server VM (build 23.3-b01, mixed mode)

$ /usr/libexec/java_home -V
Matching Java Virtual Machines (4):
    1.8.0_25, x86_64:   "Java SE 8" /Library/Java/JavaVirtualMachines/jdk1.8.0_25.jdk/Contents/Home
    1.7.0_07, x86_64:   "Java SE 7" /Library/Java/JavaVirtualMachines/jdk1.7.0_07.jdk/Contents/Home
    1.6.0_35-b10-428, x86_64:   "Java SE 6" /Library/Java/JavaVirtualMachines/1.6.0_35-b10-428.jdk/Contents/Home
    1.6.0_35-b10-428, i386: "Java SE 6" /Library/Java/JavaVirtualMachines/1.6.0_35-b10-428.jdk/Contents/Home

/Library/Java/JavaVirtualMachines/jdk1.8.0_25.jdk/Contents/Home

我尝试过的解决方案:

cd $(/usr/libexec/java_home -v 1.7)/jre/lib/security   
ln -fsh /System/Library/Java/Support/CoreDeploy.bundle/Contents/Home/lib/security/cacerts

在上面我重新启动Android Studio但同样的问题仍然存在。

1 个答案:

答案 0 :(得分:-1)

我有同样的错误,我最后通过执行这些步骤(在linux上)来解决它:

您需要找到您正在使用的密钥库并导入您尝试访问的网站的base64证书:

例如在ubuntu上,所有java证书都在 / etc / ssl / certs / java / cacerts 中,默认密码为“changeit”。

导入证书我必须以这种方式使用keytool:

keytool -importcert -trustcacerts -alias myalias -file path_to_cert_file -keystore / etc / ssl / certs / java / cacerts

并在询问时使用 changeit 作为密码;我不知道java密钥库(通常名为cacerts)在OsX上的位置。当然,您还需要从浏览器中导出https://dl-ssl.google.com证书。