2016-12-16 5 views
5

У меня есть Ubuntu VM работает дружественный в OpenStack, там я скачал последние Android SDK инструменты (tools_r25.2.3-linux.zip) от https://developer.android.com/studio/index.html. И все хорошо настроено:Не удалось найти цель с хэш строки «андроид-25», хотя андроид-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. 

И на самом деле, как упоминает журнал ошибок, у меня установлены необходимые инструменты. Run $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).

Давайте посмотрим на файловых структурах 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-ons или platforms, только tools в качестве нового корневого каталога.

Проблема: Gradle будет запутаться, если вы установите $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, и просто выполнив обновление, он не будет работать. У меня есть эта проблема только из-за того, что у меня есть изображение докеров, которое загружает SDK при его создании. –

+0

Теперь возможно16, 2017 и поскольку новый проект создан, эти же глупые проблемы остаются. Разве команда программного обеспечения для детского сада в Google не читает Stackoverflow, как и все остальные? Как называется ответственный программист? Платформа: попытка A25 для системы на основе win10 со всеми возможными обновлениями – carl

0

Я только что использовал Недействительные уловы/Перезапустить в моей студии андроид. Это сработало для меня.

 Смежные вопросы

  • Нет связанных вопросов^_^