ล้มเหลวในการค้นหาเป้าหมายด้วยสตริงแฮช 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 Manager, โปรดตรวจสอบกล่องบน"รายละเอียดแพคเกจแสดง" ; จากนั้นคุณควรเลือก"Google APIs"สำหรับเวอร์ชันที่คุณต้องการติดตั้ง

ติดตั้งแล้วคุณควรจะโอเค


2
สิ่งนี้ได้ผล ต้องดาวน์โหลดเครื่องมือสร้างหลังจากตัวจัดการ SDK เสร็จสิ้น แต่ไม่จำเป็นต้องทำการลบโฟลเดอร์. gradle หรือแคชที่ไม่ถูกต้อง
Bill Mote

ขอบคุณ! ทำงานได้ดี
carlodonz


18

คำตอบสำหรับคำถามนี้

Gradle โง่เป็นครั้งคราวและการล้างแคชเป็นทางออกเดียวที่ฉันพบ คุณจะพบโฟลเดอร์. gradle ที่ซ่อนอยู่ภายใต้โฟลเดอร์โฮมของผู้ใช้ของคุณและอีกโฟลเดอร์หนึ่งที่ตำแหน่งการชำระเงินสำหรับ osmdroid


3
ฉันลบโฟลเดอร์ใหม่และยังคงมีปัญหาอยู่
htafoya

13

ฉันแก้ไขปัญหาให้ฉันโดยเปิด Android SDK Manager และติดตั้งเครื่องมือสร้างสำหรับเวอร์ชัน 23.xx ทั้งหมด

ดูภาพหน้าจอ

ป้อนคำอธิบายภาพที่นี่


นั่นมัน! (ใช้ Deco บน mac) ขอบคุณ!
JeremyF

5

หมายเหตุ:ฉันคิดว่านี่อาจเป็นข้อบกพร่องใน Android Studio

  1. ไปที่โครงสร้างโครงการ
  2. เลือกโมดูลแอพ
  3. ภายใต้แท็บแรก "คุณสมบัติ" เปลี่ยนเวอร์ชัน Compile 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. กดตกลงและรอให้กระบวนการดำเนินการเสร็จสิ้น
  3. ย้อนกลับเวอร์ชันเครื่องมือสร้างของคุณกลับไปเป็นเวอร์ชันก่อนที่คุณจะเปลี่ยนแปลง
  4. กดตกลง
  5. รอจนเสร็จสิ้นกระบวนการ
  6. เสร็จแล้ว!

3

การปฏิบัติตามคำแนะนำที่แนะนำเหล่านี้ดูเหมือนจะได้ผล:

คำแนะนำ: เปิดตัวจัดการ SDK โดยเรียกใช้: / path / to / android / tools / android

คุณจะต้องใช้: 1. "แพลตฟอร์ม SDK" สำหรับ Android-23 2. "เครื่องมือแพลตฟอร์ม SDK ของ Android (ล่าสุด) 3. " เครื่องมือสร้าง SDK ของ Android "(ล่าสุด)


3

มีปัญหาเดียวกันกับหมายเลขอื่นสิ่งนี้ใช้ได้กับฉัน:

  1. คลิกข้อความแสดงข้อผิดพลาดที่ด้านบน "Gradle project sync failed" โดยมีข้อความว่า´Open message view´

  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 ที่เกี่ยวข้องผ่าน Tools -> Android -> SDK Manager -> SDK Tools (ตรวจสอบให้แน่ใจว่าคุณได้เลือก 'แสดงรายละเอียดแพ็กเกจ') กรณีของคุณจะเป็น Android 6.0 (Marshmallow / API ระดับ 21)

2) หรือเปิดbuild.gradleไฟล์ของคุณและอัปเดตแอตทริบิวต์ต่อไปนี้:

  • compileSdkVersion
  • buildToolsVersion
  • targetSdkVersion

ไม่ว่าจะเป็น Android API เวอร์ชันล่าสุดที่คุณติดตั้ง / เวอร์ชันที่ติดตั้งอื่นที่คุณต้องการใช้ (แม้ว่าฉันจะแนะนำให้ใช้เวอร์ชันล่าสุดเสมอด้วยเหตุผลทั่วไปเช่นการแก้ไขข้อบกพร่องเป็นต้น)

หากคุณทำตามขั้นตอนที่ 2 สิ่งสำคัญเช่นกันที่คุณอย่าลืมอัปเดตเวอร์ชันไลบรารีการสนับสนุน Android หากแอปของคุณใช้งานอยู่ สามารถพบได้ในdependenciesส่วนของไฟล์ build ของคุณและมีลักษณะดังนี้:

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

(แทนที่27.0.2ด้วยไลบรารีการสนับสนุนเวอร์ชันล่าสุดสำหรับระดับ API ที่คุณต้องการใช้กับแอปของคุณ)



1

ไม่มีอะไรได้ผลสำหรับฉัน ฉันเปลี่ยนเส้นทาง SDK ไปยังตำแหน่ง SDK ใหม่และติดตั้ง SDK ใหม่มันทำงานได้อย่างสมบูรณ์


1

เครื่องมือ> Android> SDK Manager

ป้อนคำอธิบายภาพที่นี่


ฉันไม่ได้เป็นแฟนของคำตอบสั้น ๆ แต่ก็ทำได้อย่างสวยงาม แก้ไขทุกอย่างให้ฉัน
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 Manager ปัจจุบันของคุณไม่รองรับการรัน ลองทำสิ่งต่อไปนี้ 1. ติดตั้ง SDK Manager ที่รองรับ API ระดับ 23 ไปที่> SDK Manager> Android SDK จากนั้นเลือก API 23 และติดตั้ง 2. ทางเลือกที่สองคืออัปเดตโมดูลแอป build.grade ของคุณเพื่อเปลี่ยน compileSdkVersion คอมไพล์และหมายเลขอื่น ๆ เป็นระดับ API ที่คุณรองรับในปัจจุบัน

หมายเหตุ: โปรดตรวจสอบหมายเลข API และหมายเลขการแก้ไขและเปลี่ยนแปลงให้ถูกต้อง มิฉะนั้นโครงการของคุณจะไม่ซิงโครไนซ์


0

ตรวจสอบให้แน่ใจว่า IDE รับรู้ว่าคุณมีแพ็กเกจ มันไม่ได้อยู่ในของฉันแม้หลังจากดาวน์โหลด 28 แล้วดังนั้นฉันจึงถอนการติดตั้งแล้วติดตั้งใหม่หลังจากที่ตระหนักว่ามันไม่ปรากฏขึ้นภายใต้ File-Project Structure-Modules-App เป็นตัวเลือกสำหรับ SDK

ยิ่งไปกว่านั้นคุณอาจต้องการเปลี่ยนเส้นทางการสร้างของคุณให้ตรงกัน

เกี่ยวข้องกันเล็กน้อยการอัปเดตล่าสุดดูเหมือนจะสามารถรวบรวมได้เมื่อฉันบังคับให้อัปเดตไปจนถึง 28 สำหรับ CompileSDK และไม่เพียง แต่ขึ้นอยู่กับความต้องการ API 26 นาทีใหม่จาก Google Play สิ่งนี้เกี่ยวข้องกับการอ้างอิงและอาจไม่ส่งผลกระทบต่อคุณ


0

AndroidSDK> แพลตฟอร์ม SDK> และติดตั้ง API ระดับ 23


คุณช่วยอธิบายคำตอบของคุณเพิ่มเติมได้ไหม
Matias Chara

สิ่งที่ฉันหมายถึงเปิดสตูดิโอ android ที่ด้านขวาบนคลิกที่ android SDK Manager และมันจะแสดงระดับ API ที่มีอยู่ที่นั่นมองหา API ระดับ 23 เลือกแล้วคลิกใช้
bash-tag
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.