Android studio - ไม่พบเป้าหมาย android-18


95

ฉันมีปัญหากับ Android Studio 0.2.3

เมื่อฉันรันโปรเจ็กต์ของฉันบิลด์จะหยุดและปรากฏข้อความว่า:

Gradle: การดำเนินการล้มเหลวสำหรับงาน ': AppName : compileDebugAidl'
> ไม่พบเป้าหมาย android-18

แม้ว่าฉันจะติดตั้งแพลตฟอร์ม SDK ของ Android 4.3 (API 18) แล้วและฉันพยายามติดตั้ง SDK ทั้งหมดใหม่ ฉันได้เพิ่มANDROID_HOMEตัวแปรในตัวแปรระบบแล้ว

อะไรคือที่มาของข้อผิดพลาดนี้


เป้าหมายขั้นต่ำของคุณสำหรับโครงการคืออะไร?
Dave Alperovich

Android 2.3.3 (API 10)
RobertoAV96

1
การตั้งค่าตัวแปร ANDROID_HOME ใน. bash_profile ของฉันไปยังตำแหน่ง sdk Android Studio ของฉัน (ที่ฉันดาวน์โหลด v18) แก้ไขสิ่งนี้ให้ฉัน!
Daniel Smith

ฉันมีตัวกำกับเสียงในเส้นทางบ้านผู้ใช้ของฉันสิ่งนี้ช่วยได้: stackoverflow.com/a/53994123/5242995
Martin Široký

คำตอบ:


119

ฉันคิดว่าคุณอาจไม่ได้ติดตั้ง sdk Android-18 ไปที่ Tools> Android> SDK Manager และตรวจสอบว่าติดตั้ง Android 4.3 (API 18) หรือไม่


10
ในความเป็นจริงเมื่อฉันมีปัญหาได้ติดตั้ง Android-18 sdk แล้ว แต่ฉันคิดว่า Android Studio ตรวจไม่พบ ฉันได้แก้ไขโดยการถอนการติดตั้งและติดตั้ง SDK และ Studio ใหม่
RobertoAV96

3
เมื่อฉันได้รับข้อผิดพลาดที่คล้ายกันการรีสตาร์ท Android Studio ก็เพียงพอแล้วแทนที่จะติดตั้งใหม่ทั้งหมด
Code-Apprentice

1
การรีสตาร์ท Mac เป็นสิ่งเดียวที่ทำให้ IntelliJ เห็น SDK ที่ติดตั้งใหม่ให้ฉัน
codeulike

50

ฉันจะแก้ไขปัญหาโดยการเปลี่ยนcompileSdkVersionในGradle.buildไฟล์ 18-17

buildscript {
    repositories {
        mavenCentral()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:0.5.+'
    }
}
apply plugin: 'android'

repositories {
    mavenCentral()
}

android {
    compileSdkVersion 17
    buildToolsVersion "17.0.0"

    defaultConfig {
        minSdkVersion 10
        targetSdkVersion 18
    }
}

dependencies {
    compile 'com.android.support:support-v4:13.0.+'
}

ทำได้ดีมาก ฉันคิดว่าจะสำเร็จได้เช่นเดียวกันหากคุณก้าวไปสู่เป้าหมายขั้นต่ำของคุณ ในความเป็นจริงมันน่าจะไม่วิ่งบน 2.3.3
Dave Alperovich

3
นี่ไม่ใช่วิธีแก้ปัญหาโดยเฉพาะอย่างยิ่งหากคุณพยายามใช้คุณสมบัติที่มีเฉพาะใน 18+
Daniel Smith

คุณจะทำให้มันใช้ SDK ล่าสุดแทนได้อย่างไร ฉันมีปัญหาคล้ายกันกับไลบรารีนี้: github.com/devunwired/custom-view-examplesและแม้ว่าฉันจะทำตามขั้นตอนที่คล้ายกัน แต่ฉันก็ได้รับข้อผิดพลาดนี้
นักพัฒนา Android

10

ขั้นตอนที่ 1) เริ่มตัวจัดการ Android SDK

ด้วยandroidคำสั่งบางอย่างดังต่อไปนี้

$ /usr/local/android-studio/sdk/tools/android

ขั้นตอนที่ 2) ค้นหา API 18

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

ขั้นตอนที่ 3) เลือก Android 4.3 (API 18) และติดตั้งแพ็คเกจ


5

สิ่งที่ใช้ได้ผลสำหรับฉันใน Android Studio (0.8.1):

  1. คลิกขวาที่ชื่อโครงการและเปิดการตั้งค่าโมดูล
  2. ยืนยันตำแหน่ง SDK SDK
  3. ตรวจสอบ Gradle และ Plugin Versions (ตรวจสอบคำแนะนำข้อความแสดงข้อผิดพลาดสำหรับเวอร์ชันที่เหมาะสมที่จะใช้) Gradke
  4. ในโมดูลแอปตั้งค่าเวอร์ชัน Compile SDK เป็น android-L (ล่าสุด)
  5. ตั้งค่าเวอร์ชัน Build Tools เป็นค่าสูงสุดที่มี (ในกรณีของฉันคือ 20.0.0) สร้าง

การเปลี่ยนแปลงเหล่านี้ผ่านทาง UI ทำให้การเปลี่ยนแปลงที่เทียบเท่ากันแสดงในคำตอบอื่น ๆ แต่เป็นวิธีที่ดีกว่าในการดำเนินการเนื่องจากเมื่อปิดไฟล์ที่เหมาะสมทั้งหมด (ปัจจุบันและอนาคต) จะได้รับการอัปเดตโดยอัตโนมัติ (ซึ่งจะเป็นประโยชน์เมื่อต้องเผชิญกับหลาย ๆ ที่ที่อาจเกิดปัญหาได้ ).

หมายเหตุ: การตรวจสอบบันทึกเหตุการณ์สำคัญมากและโปรดทราบว่า Android Studio มีข้อความที่เป็นประโยชน์เกี่ยวกับวิธีอื่นในการแก้ไขปัญหาดังกล่าว


3

ขอบคุณ RobertoAV96

คุณคือฮีโร่ของฉัน. แต่มันไม่เพียงพอ ในกรณีของฉันฉันเปลี่ยนทั้ง compileSdkVersion และ buildToolsVersion ตอนนี้ใช้งานได้แล้ว หวังว่าจะช่วยได้

buildscript {
       repositories {
           mavenCentral()
       }
       dependencies {
          classpath 'com.android.tools.build:gradle:0.6.+'
       }
   }
   apply plugin: 'android'

   dependencies {
       compile fileTree(dir: 'libs', include: '*.jar')
   }

   android {
       compileSdkVersion 19
       buildToolsVersion "19"

       sourceSets {
           main {
               manifest.srcFile 'AndroidManifest.xml'
               java.srcDirs = ['src']
               resources.srcDirs = ['src']
               aidl.srcDirs = ['src']
               renderscript.srcDirs = ['src']
               res.srcDirs = ['res']
               assets.srcDirs = ['assets']
           }

           // Move the tests to tests/java, tests/res, etc...
           instrumentTest.setRoot('tests')
           // Move the build types to build-types/<type>
           // For instance, build-types/debug/java, build-types/debug/AndroidManifest.xml, ..
           // This moves them out of them default location under src/<type>/... which would
           // conflict with src/ being used by the main source set.
           // Adding new build types or product flavors should be accompanied
           // by a similar customization.
           debug.setRoot('build-types/debug')
           release.setRoot('build-types/release')
       }
   }

2

หากคุณมีปัญหาเปิดตัวจัดการ SDK ติดตั้งการอัปเดตที่ร้องขอกลับไปที่ Android Studio และมีปัญหาอีกครั้งขอแนะนำให้รีสตาร์ท ANDROID STUDIO สำหรับการลองสิ่งอื่นใด

Gradle จะทำงานโดยอัตโนมัติและโอกาสที่ปัญหาของคุณจะจบลง คุณอาจได้รับแจ้งให้ติดตั้งแพ็คเกจ SDK TOOLS ที่เหมาะสมซึ่งพบได้ใน SDK MANAGER ของคุณภายใต้แท็บที่สอง (sdk ไม่เหมือนกับเครื่องมือ sdk แต่เป็นแพ็คเกจเสริม)

คุณไม่จำเป็นต้องค้นหาแพ็คเกจเครื่องมือหากคุณคลิกที่ลิงค์ใต้ข้อความแสดงข้อผิดพลาด Android Studio ควรเรียกตัวจัดการ SDK เพื่อติดตั้งแพ็คเกจโดยอัตโนมัติ

รีสตาร์ท Android Studio อีกครั้งและคุณควรจะใช้งานได้เร็วกว่าที่คุณพยายามแก้ไข

RULE OF THUMB> รีสตาร์ทแอปพลิเคชันของคุณก่อนที่จะยุ่งกับตัวเลือกและการกำหนดค่า


1

ตรวจสอบไฟล์ local.properties ใน Studio Project ของคุณ มีโอกาสที่คุณสมบัติ sdk.dir จะชี้ไปที่โฟลเดอร์ที่ไม่ถูกต้องหากคุณได้ตั้ง / กำหนดค่า android sdk ก่อนหน้าจากยุคก่อนสตูดิโอ นี่เป็นวิธีแก้ปัญหาในกรณีของฉัน


0

ฉันมีปัญหาเดียวกันเมื่อลองใช้ Android Studio ฉันมีโครงการที่ทำงานบน ADT ภายใต้ SDK 18 อยู่แล้วไม่จำเป็นต้องแฮ็กไฟล์รายการ

แก้ไขโดย:

ส่งออก ANDROID_HOME = pathtobundle / adt-bundle-linux-x86_64-20130729 / sdk

หากคุณไม่ได้ติดตั้ง ADT และต้องการเพียงแค่ SDK ดูเหมือนว่าทางออกที่ดีคือการติดตั้งทุกอย่างแล้วชี้ Android Studio ไปที่ SDK ที่บรรจุ

cd pathtobundle

wget http://dl.google.com/android/adt/adt-bundle-linux-x86_64-20130729.zip

เปิดเครื่องรูด * .zip

อย่างที่คนอื่นพูดคุณอาจต้องเรียกใช้ SDK Manager เพื่อติดตั้งแพ็คเกจที่ต้องการก่อนที่จะเรียกใช้ Studio


0

ฉันมีปัญหาที่คล้ายกันเกิดขึ้นเมื่อฉันติดตั้งทั้ง Eclipse, Android Studio และ Android SDK แบบสแตนด์อโลน (ปัญหาอยู่ที่ตัวจัดการ AVD ไม่พบภาพเป้าหมาย) ฉันใช้ Eclipse สำหรับการพัฒนา Android แต่ได้ย้ายไปที่ Android Studio และพบอย่างรวดเร็วว่า Android Studio ไม่พบ AVD ที่ฉันสร้างไว้ก่อนหน้านี้

ปัญหาอาจอยู่ที่ Android Studio กำลังดูว่าเป็น Android SDK ของตัวเอง (พบใน C: \ Users \ username \ AppData \ Local \ Android \ android-studio \ sdk) และไม่ใช่ SDK แบบสแตนด์อโลนที่ติดตั้งไว้ก่อนหน้านี้ซึ่งฉันได้ติดตั้งไว้ ที่ C: \ adt \ sdk

การเปลี่ยนชื่อโฟลเดอร์ SDK ของ Android Studio ใน C: \ Users ... (เปลี่ยนชื่อเฉพาะในกรณีที่สิ่งต่างๆพัง) จากนั้นสร้างลิงก์สัญลักษณ์ระหว่างตำแหน่ง Android Studio SDK และ Android SDK แบบสแตนด์อโลนเพื่อแก้ไขปัญหานี้

ฉันยังใช้ Link Shell Extension ( http://schinagl.priv.at/nt/hardlinkshellext/linkshellextension.html ) เพียงเพื่อกำจัดความน่าเบื่อในการสร้างลิงก์สัญลักษณ์


0

นอกจากนี้ยังจะเกิดขึ้นถ้าคุณได้เขียนcompileSdkVersion = 22เช่น (ที่ใช้ใน "ใหม่ใหม่" Android สร้างระบบ) compileSdkVersion 22แทน


0

คุณสามารถแก้ปัญหาการเปลี่ยน compileSdkVersion ในไฟล์ Grandle.build จาก 18 เป็น wtever SDK ที่ติดตั้ง ..... BUTTTTT

  1. หากคุณกำลังพยายามย้อนกลับไปในเวอร์ชัน SDK เช่น 18 ถึง 17 คุณจะไม่สามารถใช้คุณลักษณะที่มีใน 18 หรือ 18+ ได้

  2. หากคุณกำลังย้ายโปรเจ็กต์ของคุณ (Eclipse ไปยัง Android Studio) จากนั้นคุณไม่มีไฟล์ build.gradle ในโปรเจ็กต์ Existed Eclipse ของคุณ

ดังนั้นทางออกเดียวคือตรวจสอบให้แน่ใจว่ามีการติดตั้งเวอร์ชัน SDK หรือไม่คุณกำลังกำหนดเป้าหมายไปที่หากไม่ติดตั้ง

ข้อผิดพลาด: สาเหตุ: ล้มเหลวในการค้นหาเป้าหมายด้วยสตริงแฮช 'android-19' ใน: C: \ Users \ setia \ AppData \ Local \ Android \ sdk


0

กำหนดเป้าหมายด้วยแฮชสตริง 'android-18' ตรงกับ SDK ระดับ 18 คุณต้องติดตั้ง SDK 18 จากตัวจัดการ SDK

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.