не вдалося знайти ціль за допомогою хеш-рядка 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.