2016-12-16 58 views
5

我有一个Ubuntu的Xenial VM在OpenStack的运行,还有我已经下载了最新的Android SDK工具(tools_r25.2.3-linux.zip)从https://developer.android.com/studio/index.html。一切都在顺利进行配置:无法找到与哈希字符串 '的android-25' 目标,虽然Android的25实际安装

  • JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
  • ANDROID_HOME=<ANDROID_SDK_PATH>
  • PATH=${PATH}:${ANDROID_HOME}
  • echo "sdk.dir=<ANDROID_SDK_PATH>" > <MY_ANDROID_PROJECT_PATH>/local.properties

但是,当尝试执行任务:./gradlew clean,出现错误:

Preparing "Install Android SDK Build-Tools 25". 
Warning: Trying to install into ${ANDROID_HOME}/build-tools/25.0.0/ but package "Android SDK Tools 25.2.4" already exists at ${ANDROID_HOME}. It must be deleted or moved away before installing into a child directory. 
Preparing "Install Android SDK Platform 25". 
Warning: Trying to install into ${ANDROID_HOME}/platforms/android-25/ but package "Android SDK Tools 25.2.4" already exists at ${ANDROID_HOME}. It must be deleted or moved away before installing into a child directory. 

FAILURE: Build failed with an exception. 

* What went wrong: 
A problem occurred configuring project ':demo'. 
> Failed to install the following SDK components: 
    [Android SDK Build-Tools 25, Android SDK Platform 25] 
    Please install the missing components using the SDK manager in Android Studio. 

而实际上作为错误日志中提到,我已经安装了所需的工具。运行$ANDROID_HOME/bin/sdkmanager --list显示我已安装的软件包:

Installed packages: 
    Path      | Version | Description      | Location 
    -------      | ------- | -------       | ------- 
    build-tools;25.0.0   | 25.0.0 | Android SDK Build-Tools 25  | build-tools/25.0.0/ 
    extras;android;m2repository | 41.0.0 | Android Support Repository, re... | extras/android/m2repository/ 
    platform-tools    | 25.0.2 | Android SDK Platform-Tools 25.0.2 | platform-tools/ 
    platforms;android-25  | 3  | Android SDK Platform 25, rev 3 | platforms/android-25/ 
    tools      | 25.2.4 | Android SDK Tools 25.2.4   | tools/ 

这里有什么问题?我对这里的SDK路径有点怀疑。

回答

8

只是证实了我的猜测 - 这是由于最新的Android SDK版本所做的新的变化。

感谢上帝,我们有一台时间机器,这样我们就可以回去看看究竟发生了什么(不能真正找到任何SDK Tools Release Notes CUE)。

让我们来看看ANDROID_HOME文件结构前后的变化之后。

以前

android-sdk-linux 
├── SDK Readme.txt 
├── add-ons (empty) 
├── platforms (empty) 
└── tools 
    ├── a bunch of preloaded tools 
    ├── ... 
    └── ... 

后:

tools 
├── a bunch of preloaded tools 
├── ... 
└── ... 

没有更多add-onsplatforms,只有tools作为新的根目录。

问题:如果你直接设置$ANDROID_HOME解压的最顶层tools目录摇篮就会手忙脚乱。

解决方案:解压缩新的SDK文件(您将获得tools目录)后,创建另一个目录(例如,android-sdk),并完全移动tools目录空android-sdk里面,然后设置环境变量:

ANDROID_HOME=/android-sdk 
PATH=${PATH}:${ANDROID_HOME}/tools 

简而言之:不要设置$ANDROID_HOME直接向新tools父目录,把它包装另一位家长里!

+0

换句话说,除非您手动执行某些清理,否则最新的更新会破坏事情?这似乎不是一个会持续很长时间的问题......移动的东西只会让下一次更新变得更加困惑。不幸的是,这也发生在Windows上。 :( – lilbyrdie

+0

是的,这个文件结构在发行说明中没有提及,当用户下载SDK并执行全新设置时(使用通常的方式来配置'$ ANDROID_HOME'),那么它就搞砸了。对于已经有SDK的其他用户,只需执行更新,它就不会中断。我有这个问题只是因为我有一个Docker镜像,它在构建它时下载SDK。 –

+0

现在是2017年5月16日,并且作为一个新项目的创建,这些同样愚蠢的问题依然存在。Google的幼儿园软件团队不像我们其他人一样阅读Stackoverflow吗?程序员的名字是什么?平台:尝试在基于win10的系统上使用A25,尽可能更新所有更新 – carl

0

我刚刚使用在我的android工作室失效捕获/重新启动。它为我工作。

相关问题