จะเพิ่มพื้นที่เก็บข้อมูลสนับสนุน Android ไปยัง Android Studio ได้อย่างไร

ฉันใช้ Android Studio กับ Android SDK ภายนอก ฉันได้ติดตั้งไลบรารีการสนับสนุนและพื้นที่เก็บข้อมูลการสนับสนุนแล้ว พื้นที่เก็บข้อมูลสนับสนุนอยู่ใน:

~/Development/Tools/android/sdk/extras/android/m2repository

เมื่อฉันเพิ่มการพึ่งพาให้กับไลบรารีการสนับสนุนในไฟล์ build.gradle เช่น:

...

repositories {
    mavenCentral()
}

...

dependencies {
   compile "com.android.support:support-v4:18.0.+"
}

Android Studio ไม่พบไลบรารีการสนับสนุน (ไม่สามารถแก้ไขสัญลักษณ์ ฯลฯ ) และ Gradle ก็ไม่พบไลบรารีด้วย:

Gradle: A problem occurred configuring project ':TestAndroidStudio'.
> Failed to notify project evaluation listener.
   > Could not resolve all dependencies for configuration ':TestAndroidStudio:_DebugCompile'.
      > Could not find any version that matches com.android.support:support-v4:18.0.+.
        Required by:
            TestAndroidStudio:TestAndroidStudio:unspecified

ฉันจะระบุตำแหน่งของพื้นที่เก็บข้อมูลสนับสนุน Android ใน Android Studio และ/หรือไฟล์ build.gradle ได้อย่างไร


person Jaap van Hengstum    schedule 13.11.2013    source แหล่งที่มา
comment
ในไฟล์ local.properties เป็นเส้นทาง SDK ที่ถูกต้องหรือไม่   -  person rciovati    schedule 13.11.2013
comment
บรรทัดเดียวในไฟล์ local.properties ของฉันคือ: sdk.dir=/Users/jaap/Development/Tools/android/sdk ซึ่งเป็นเส้นทางไปยัง SDK ภายนอก   -  person Jaap van Hengstum    schedule 13.11.2013
comment
คุณแน่ใจหรือไม่ว่าคุณมีไลบรารีการสนับสนุนเวอร์ชัน 18 ตอนนี้อายุ 19 แล้ว   -  person rciovati    schedule 13.11.2013
comment
ใครก็ตามที่มาถึงที่นี่เพราะพวกเขาล้มเหลวในการเพิ่มคำสั่ง 'compile' ใน build.gradle โปรดทราบว่ามีไฟล์ build.gradle สองไฟล์ และจะต้องเพิ่มการคอมไพล์ในส่วนการขึ้นต่อกันของไฟล์ที่ไม่มีส่วนการขึ้นต่อกัน (ไฟล์ที่มี targetSdkVersion = x ฯลฯ )   -  person Lorne K    schedule 19.04.2018


คำตอบ (6)


คุณอาจโดน ข้อบกพร่องนี้ ซึ่งขัดขวางไม่ให้ Android Gradle ปลั๊กอินจากการเพิ่ม "Android Support Repository" ลงในรายการที่เก็บ Gradle โดยอัตโนมัติ วิธีแก้ปัญหาตามที่กล่าวไว้ในรายงานข้อผิดพลาดคือการเพิ่มไดเร็กทอรี m2repository เป็นไดเร็กทอรี Maven ในเครื่องในไฟล์ build.gradle ระดับบนสุดอย่างชัดเจนดังนี้:

allprojects {
    repositories {
        // Work around https://code.google.com/p/android/issues/detail?id=69270.
        def androidHome = System.getenv("ANDROID_HOME")
        maven {
            url "$androidHome/extras/android/m2repository/"
        }
    }
}
person sschuberth    schedule 18.08.2014
comment
ฉันกำลังเพิ่ม libs ให้กับ maven artifactory ในพื้นที่ของเรา ดังนั้นจึงใช้ได้กับทุกคน - person philipp; 01.11.2014
comment
นั่นไม่จำเป็นอีกต่อไป อย่างน้อยฉันก็ไม่สามารถสร้างจุดบกพร่องได้อีกต่อไปด้วยปลั๊กอิน Android และเครื่องมือสร้างล่าสุด (ดูความคิดเห็นของฉันเกี่ยวกับจุดบกพร่องดั้งเดิมด้วย) - person sschuberth; 01.11.2014
comment
วิธีนี้ช่วยแก้ไขปัญหาอื่น: การเพิ่มการสนับสนุนคำอธิบายประกอบ Android (เช่น @NonNull) ให้กับ java lib เปล่าของแอป Android - person DenisGL; 20.07.2016
comment
ยังคงมีสิ่งนี้หลังจากอัปเกรดเป็น Android Studio 2.3 ... มีข้อมูลใดบ้างว่าสาเหตุคืออะไรและกลไกการทำงานของ hook ใน Android studio เป็นอย่างไร! สิ่งเดียวที่ฉันสามารถยืนยันได้: ฉันสามารถแก้ไขได้โดยเพียงแค่ถอนการติดตั้งแล้วติดตั้งพื้นที่เก็บข้อมูลการสนับสนุนใหม่ผ่านทางตัวจัดการ SDK ... ไม่ต้องติดกาวว่าทำไมสิ่งนี้ถึงช่วยได้แม้แต่ไฟล์ที่มีอยู่และติดตั้งใหม่อีกครั้งก็เหมือนกันทุกประการ - person childno͡.de; 03.04.2017

Gradle สามารถทำงานกับรูปแบบ 18.0.+ ได้ แต่ตอนนี้ขึ้นอยู่กับพื้นที่เก็บข้อมูลการสนับสนุนใหม่ซึ่งรวมเข้ากับ SDK แล้ว

เปิดตัวจัดการ SDK และทันทีภายใต้ Extras ตัวเลือกแรกคือ "Android Support Repository" และติดตั้ง

person ngatirauks    schedule 25.11.2013
comment
ตรวจสอบให้แน่ใจว่า Android SDK Tools ของคุณได้รับการอัปเดตแล้ว และพิจารณาใช้เวอร์ชัน 19.0.+ เนื่องจากเป็นเวอร์ชันล่าสุด - person Michael Barany; 26.11.2013
comment
Developer.android เตือนไม่ให้ใช้ + ในหมายเลขเวอร์ชัน ในเอกสารนี้ และที่อื่นๆ อีกมากมาย - person AaA; 06.07.2017

พบวิธีแก้ปัญหา

1) ไปที่ตำแหน่ง SDK ของคุณที่ android studio/eclipse ใช้อยู่ หากคุณใช้ Android studio ให้ไปที่ extras\android\m2repository\com\android\support\ หากคุณใช้ eclipse ให้ไปที่ \extras\android\support\

2) ดูว่าคุณมีโฟลเดอร์ใดบ้าง สำหรับฉันฉันมี gridlayout-v7, support-v4 และ support-v13

3) คลิกเข้าไปที่ support-v4 แล้วดูว่าโฟลเดอร์ต่อไปนี้คือหมายเลขอะไร ของฉันชื่อ 13.0

เนื่องจากคุณใช้ "com.android.support:support-v4:18.0.+" ให้เปลี่ยนสิ่งนี้เพื่อแสดงเวอร์ชันที่คุณมี เช่น ฉันมี support-v4 ดังนั้นส่วนแรก v4 จะยังคงเหมือนเดิม เนื่องจากเส้นทางถัดไปคือ 13.0 ให้เปลี่ยน 18.0 ของคุณเป็น:

"com.android.support:support-v4:13.0.+"

สิ่งนี้ได้ผลสำหรับฉัน หวังว่ามันจะช่วยได้!

อัปเดต:

ฉันสังเกตเห็นว่าฉันได้ตั้งค่า android studio ด้วย SDK ผิด ซึ่งเป็นเหตุผลว่าทำไมในตอนแรกจึงประสบปัญหาในการอัปเดต! เส้นทางควรเป็น C:\Users\Username\AppData\Local\Android\android-sdk\extras\

โปรดทราบว่าหาก SDK ของคุณเป็นเวอร์ชันล่าสุด โค้ดจะเป็น:

"com.android.support:support-v4:19.0.+"
person escull638    schedule 24.12.2013
comment
ขอบคุณ. ฉันก็ติดขัดเล็กน้อยเช่นกันเพราะในพื้นที่เก็บข้อมูล Maven ออนไลน์ไลบรารีการสนับสนุนอยู่ภายใต้ com.google.android แต่ที่นี่อยู่ภายใต้ com.android.support - person joe_deniable; 01.01.2014
comment
ฉันใช้เวลาหลายชั่วโมงกว่าจะคิดออก! ปรากฎว่าเป็นเพียงการเปลี่ยนแปลงง่ายๆ ฮ่าๆ ดีใจที่คุณจัดการได้แล้ว! - person escull638; 03.01.2014
comment
โฟลเดอร์ SDK ของฉันอยู่ในไดรฟ์ E (C คือ SSD) และ [SDK]\extras\android\m2repository\com\android\support\support-v4 มีหมายเลขโฟลเดอร์เริ่มต้นจาก 13.0.0 ถึง 26.0.0-alpha1 (38 โฟลเดอร์) repo ยังไม่สามารถเข้าถึงได้ - person AaA; 06.07.2017
comment
Developer.android เตือนแล้วว่าอย่าใช้ + ในหมายเลขเวอร์ชัน ในเอกสารนี้ - person AaA; 06.07.2017

แอนดรอยด์สตูดิโอ 3

ตรวจสอบให้แน่ใจว่าคุณมี Android Studio เวอร์ชันล่าสุด ไลบรารีการสนับสนุนจะรวมอยู่ตามค่าเริ่มต้นเมื่อคุณสร้างโครงการใหม่ หากคุณกำลังเพิ่ม Support Library ให้กับโปรเจ็กต์ที่ไม่มี คุณเพียงแค่ต้องเพิ่มบรรทัดเดียวลงในไฟล์ build.gradle ของโมดูลแอปของคุณ จากนั้นซิงค์ gradle

build.gradle

dependencies {
    ...
    implementation 'com.android.support:appcompat-v7:27.1.1'
} 

มันควรจะง่ายขนาดนั้น แม้ว่าอาจมีบางสิ่งที่ควรทราบ:

  • Android Studio ควรแจ้งเตือนคุณในปัจจุบันหากจำเป็นต้องอัปเดตไลบรารีการสนับสนุน เพียงอัปเดตหมายเลข 27.1.1 ที่ฉันมีที่นี่ตามที่แจ้งให้คุณทราบ คุณยังตรวจสอบการแก้ไขล่าสุด ด้วยตนเองได้ด้วยตนเองหากคุณ ต้องการที่จะ.
  • คำหลัก implementation จะแทนที่ compile ที่ใช้ใน Android Studio 2.x (ความแตกต่างคืออะไร)
  • มีแพ็คเกจไลบรารีการสนับสนุนอื่นๆ ที่คุณอาจต้องรวมไว้ ขึ้นอยู่กับว่าแอปของคุณใช้อะไร (เช่น constraint-layout หรือ recyclerview)
  • ตรวจสอบให้แน่ใจว่าคุณมีการอัปเดตล่าสุดสำหรับทุกสิ่งใน SDK Manager ไปที่เครื่องมือ > ตัวจัดการ SDK

เอกสารประกอบ

person Suragch    schedule 18.05.2015

ฉันเคยได้รับปัญหาที่คล้ายกัน แม้ว่าหลังจากติดตั้งพื้นที่เก็บข้อมูลสนับสนุนแล้ว บิลด์ก็เคยล้มเหลว

โดยพื้นฐานแล้วปัญหาเกิดจากการระบุหมายเลขเวอร์ชันของไฟล์ jar ในไฟล์ gradle อย่างถูกต้อง

ตัวอย่างเช่น ในกรณีของฉัน ฉันตั้งค่าเป็น "compile 'com.android.support:support-v4:21.0.3+'"

เมื่อลบ "+" บิลด์ก็สำเร็จ!!

person Vjay    schedule 12.01.2015
comment
Developer.android เตือนแล้วว่าอย่าใช้ + ในหมายเลขเวอร์ชัน ในเอกสารนี้ - person AaA; 06.07.2017

แทนที่จะทำสิ่งนี้:

compile "com.android.support:support-v4:18.0.+"

ทำเช่นนี้:

compile 'com.android.support:support-v4:18.0.+' 

ทำงานให้ฉัน

person James Brotherhood    schedule 10.09.2018