не вдалося знайти ціль за допомогою хеш-рядка android-23


94

При спробі побудувати OpenStreetMapView з git: //github.com/osmdroid/osmdroid, я отримую таку помилку:

failed to find target with hash string android-23: D:\Users\myusername\AppData\Local\Android

Як я можу це виправити? Попередні запитання, подібні до цього, пропонують перевірити, що android 23 не встановлено, але в моєму випадку це так.

Нижче наведено відповідну інформацію:

ANDROID_HOME є D:\Users\myusername\AppData\Local\Android\sdk

D:\Users\myusername\AppData\Local\Android\sdk\platforms\ містить каталог \ android-23 \, (а також android-19, android-21, android-22, android-MNC)

build.gradle

apply plugin: 'com.android.application'

android {
    compileSdkVersion 23
    buildToolsVersion "23.0.1"

    defaultConfig {
        applicationId "org.osmdroid.example"
        minSdkVersion 8
        targetSdkVersion 23
        versionCode 16
        versionName "4.4-SNAPSHOT"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
    packagingOptions {
        exclude 'META-INF/LICENSE'
        exclude 'META-INF/DEPENDENCIES'
        exclude 'META-INF/NOTICE'

    }
    lintOptions {
        abortOnError false
    }
}


dependencies {
    compile 'android.support:compatibility-v4:23+'
    compile project(':osmdroid-android')
    //compile 'org.osmdroid:osmdroid-third-party:4.4-SNAPSHOT'
}

Я спробував змінити targetSdkVersion і compileSdkVersion на 22. Це призводить до того, що повідомлення про помилку змінюється на "android-22" замість "android-23".

Менеджер SDK: введіть тут опис зображення

Відповіді:


79

У моєму випадку очищення кеш-пам'яті не спрацювало.

У диспетчері SDK обов’язково встановіть прапорець біля пункту «показувати описи пакунків» ; тоді вам також слід вибрати "API Google" для версії, яку ви бажаєте встановити.

Встановіть його, і тоді у вас все буде добре


2
Це спрацювало. Довелося завантажувати інструменти побудови після завершення роботи менеджера SDK, але однозначно не потрібно було видаляти папку .gradle або недійсний кеш.
— Білл Моте

Дякую! Працював нормально.
— carlodonz


18

Відповідь на це питання .

Gradle час від часу стає дурним, і знищення кешу - єдине рішення, яке я знайшов. Ви знайдете приховану папку .gradle під домашньою папкою користувача та ще одну, де б не було місця оформлення замовлення для osmdroid.


3
Я стер папки, перезапустив, і проблема все ще є
— htafoya

13

Я вирішив цю проблему, відкривши Диспетчер SDK для Android та встановивши засоби збірки для всіх версій 23.xx.

Дивіться скріншот.

введіть тут опис зображення


Це зробили! (за допомогою Deco на mac) Дякую!
— JeremyF

5

Примітка. Я думаю, що це може бути помилкою в Android Studio.

  1. Перейдіть до Структура проекту
  2. Виберіть Модуль програми
  3. На першій вкладці "Властивості" змініть версію компіляції SDK на API XX з Google API xx (наприклад, API 23 замість Google API 23)
  4. Натисніть OK
  5. Зачекайте завершення поточного процесу, в моєму випадку я не отримав помилку на даний момент.

Тепер поверніть скомпільовану версію SDK до Google API xx.

Якщо це не спрацює, тоді:

  1. За допомогою Google API (Google API xx замість API xx) зменшіть версію інструмента складання (наприклад, Google API 23 та інструмент побудови версії 23.0.1)
  2. Натисніть Ok і зачекайте завершення поточного процесу
  3. Поверніть версію інструмента побудови до тієї, яка була до зміни
  4. Натисніть Ok
  5. Зачекайте завершення процесу.
  6. Готово!

3

Дотримуючись цих рекомендованих вказівок, здавалося, працювали:

Підказка: Відкрийте менеджер SDK, запустивши: / path / to / android / tools / android

Вам знадобиться: 1. "Платформа SDK" для android-23 2. "Інструменти платформи Android SDK (найновіші) 3." Інструменти збірки Android SDK "(найновіші)


3

Була та сама проблема з іншим номером, це спрацювало для мене:

  1. Клацніть на повідомлення про помилку вгорі «Помилка синхронізації проекту Gradle», де в тексті написано «Відкрити перегляд повідомлення»

  2. У вікні "Message Gradle Sync" у нижньому лівому куті натисніть наведене рішення "Встановити відсутні ..."

  3. Повторіть 1 і 2, якщо це необхідно

23:08 Помилка синхронізації Gradle: Не вдалося знайти ціль із хеш-рядком 'android-26' у: C: \ Users \ vik \ AppData \ Local \ Android \ Sdk

Android SDK, що пропонує рішення в нижньому лівому куті Android SDK, що пропонує рішення в нижньому лівому куті


Будь ласка, додайте більше інформації у тому випадку, коли ваше посилання на зображення зникає, щоб інші могли слідувати за відповіддю навіть після того, як посилання загине.
— Dessus

2

Це спрацювало для мене, змінивши compileSdkVersionна 24 і targetSdkVersionна 24 і змінивши compileнаcom.android.support:appcompat-v7:24.1.0


2

Існує 2 рішення цього питання:

1) Завантажте відповідний Android SDK через Інструменти -> Android -> Менеджер SDK -> Інструменти SDK (переконайтеся, що встановлено прапорець «Показати деталі пакету»). У вашому випадку це буде Android 6.0 (Marshmallow / API рівень 21)

2) Або відкрийте build.gradleфайл та оновіть такі атрибути:

  • compileSdkVersion
  • buildToolsVersion
  • targetSdkVersion

або до останньої версії встановленого вами API Android / іншої встановленої версії, яку ви хотіли б використовувати (хоча я завжди рекомендую переходити до останньої версії з типових причин: виправлення помилок тощо)

Якщо ви виконуєте крок 2, важливо також пам’ятати про оновлення версії бібліотеки підтримки Android, якщо її використовує ваша програма. Це можна знайти в dependenciesрозділі вашого файлу збірки і виглядає приблизно так:

compile 'com.android.support:appcompat-v7:27.0.2'

(замінити 27.0.2останньою версією бібліотеки підтримки для рівня API, який ви збираєтеся використовувати з вашим додатком)



1

У мене нічого не вийшло. Я змінив шлях SDK на нове розташування SDK і переінсталював SDK, він працює ідеально.


1

Інструменти> Android> Менеджер SDK.

введіть тут опис зображення


Зазвичай я не шанувальник лаконічної відповіді, але це чудово зроблено. Все вирішив за мене.
— Le Mot Juiced

Дякую, @LeMotJuiced.
— CoolMind

1

У мене виникла ця проблема під час використання Windows. Виявилося, що проблема в розташуванні SDK у моїх профілях. Тож мені довелося перенести папку SDK у документи, а потім це спрацювало.


1

Мій скаржився на 26. Я заглянув у свої папки і знайшов папку для 27, але не 26. Тож я змінив мій файл build.gradle, замінивши 26 на 27. compileSdkVersion, targetSdkVersion і реалізація (змінив ці числа на v: 7 : 27.02). Це змінило моє повідомлення про помилку. Потім я додав buildToolsVersion "27.0.3" до розділу кронштейнів Android прямо під compileSdkVersion.

Тепер кнопка make project працює з 0 повідомленнями.

Далі, як насправді вибрати модуль у моїй конфігурації, щоб я міг це запустити.


1

Для мене проблема полягала в тому, що я написав compileSdkVersion '23' замість 23. Цитата була проблемою.


1

Завантажте конкретний випуск Android за посиланням, вказаним у консолі збірки.



0

Проблема спричинена тим, що код, який ви запускаєте, був створений на старішому рівні API, і ваш поточний менеджер SDK не підтримує їх запуск. Тож спробуйте наступне; 1.Встановіть менеджер SDK, який підтримує рівень API 23. Перейдіть до> Диспетчер SDK,> Android SDK, потім виберіть API 23 та встановіть. 2. Другий варіант - оновити модуль програми build.grade, щоб змінити compileSdkVersion, компіляцію та інші номери до рівня API, який зараз підтримується.

Примітка: будь ласка, переконайтесь, що ви перевіряєте номери API та версії та точно їх змінюєте. інакше Ваш проект не синхронізується


0

Переконайтеся, що IDE розпізнає, що у вас є пакет. Це не сталося навіть після завантаження 28, тому я видалив, а потім перевстановив його, зрозумівши, що він не відображається в File-Project Structure-Modules-App як вибір для SDK.

На додачу до цього, можливо, ви захочете змінити свій шлях збірки на відповідність.

Трохи пов’язані, останні оновлення, здається, можуть компілюватися, коли я змусив оновити аж до 28 для CompileSDK, а не лише до нової вимоги API API від Google Play на 26 хв. Однак це пов'язано із залежностями, і може не вплинути на вашу

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.