การเปลี่ยนระดับ API ของ Android Studio


414

ฉันต้องการเปลี่ยนเวอร์ชั่น SDK ขั้นต่ำใน Android Studio จาก API 12 เป็น API 14 ฉันได้ลองเปลี่ยนเป็นไฟล์ Manifest เช่น

<uses-sdk
    android:minSdkVersion="14"
    android:targetSdkVersion="18" />

และสร้างโครงการขึ้นใหม่ แต่ฉันยังคงได้รับ Android Studio IDE ทำให้เกิดข้อผิดพลาด ฉันคิดว่าฉันต้องตั้งค่า SDK ขั้นต่ำใน 'คุณสมบัติของโครงการ' หรือสิ่งที่คล้ายกันดังนั้น IDE จะรับรู้การเปลี่ยนแปลง แต่ฉันไม่สามารถหาสิ่งที่จะทำใน Android Studio


1
ข้อผิดพลาดบางอย่างคืออะไร? เราไม่สามารถช่วยคุณได้หากไม่มี logcat
— Arash GM

1
พวกเขาไม่ได้รวบรวมข้อผิดพลาด เป็น IDE ที่ให้ขีดเส้นใต้สีแดงเมื่อฉันพยายามใช้ `GridLayout 'ในเลย์เอาต์ xml เช่นบอกฉันว่าต้องมี API ขั้นต่ำ 14 ระดับ ดังนั้นจะต้องมีที่ไหนสักแห่งใน Android Studio ที่คุณสามารถตั้งค่าระดับ API ขั้นต่ำได้หลังจากที่คุณสร้างโครงการ ฉันเห็นโพสต์ที่คล้ายกันสำหรับ Eclipse แต่ไม่ใช่สำหรับ Android Studio
— James B

คุณได้ติดตั้งแพ็กเกจ SDK ระดับ 14 API หรือไม่
— ramaral

ถ้าฉันเริ่มต้นโครงการใหม่และเลือก API ระดับ 14 จากเริ่มแรกฉันไม่มีปัญหาในการพัฒนาใน Android Studio เช่นฉันต้องติดตั้ง API ระดับ 14 SDK อย่างไรก็ตามถ้าฉันเพียงต้องการอัปเดตโครงการที่มีอยู่ให้ใช้ API 14 เป็นขั้นต่ำฉันไม่สามารถหาตำแหน่งที่อยู่ใน Android Studio GUI IDE ที่ฉันบอกให้ทำเช่นนี้ได้
— James B

Logcatโพสต์ของคุณ และเพื่อเปลี่ยนสิ่งMinSDKVersionนี้เป็นทางออกที่ง่ายที่สุดที่คุณได้ลองไปแล้ว .. iechange inManifest
— Mitesh Shah

คำตอบ:


582

เมื่อคุณต้องการอัพเดต minSdkVersion ของคุณในโครงการที่มีอยู่ ...

  1. อัปเดตbuild.gradle(Module: app) - ให้แน่ใจว่าเป็นหนึ่งภายใต้Gradle สคริปต์และมันก็เป็นไม่ได้ build.gradle(Project: yourproject)

ตัวอย่างของ build.gradle:

apply plugin: 'com.android.application'

android {
    compileSdkVersion 28
    buildToolsVersion "28.0.2"

    defaultConfig {
        applicationId "com.stackoverflow.answer"
        minSdkVersion 21
        targetSdkVersion 28
        versionCode 1
        versionName "1.0"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
    }
}

dependencies {
    androidTestCompile 'junit:junit:4.12'
    compile fileTree(dir: 'libs', include: ['*.jar'])
}
  1. ปุ่ม Sync gradle (รีเฟรชโครงการ gradle ทั้งหมดยังใช้งานได้)

สำหรับผู้เริ่มต้นใน Android Studio "Sync gradle button" ตั้งอยู่ในเครื่องมือ -> Android -> ซิงค์โครงการที่มีไฟล์ Gradle "สร้างโครงการ" Build -> สร้างโครงการใหม่

  1. สร้างโครงการใหม่

หลังจากการปรับปรุงbuild.gradleของminSdkVersionคุณจะต้องคลิกที่ปุ่มเพื่อซิงค์ไฟล์ gradle ( 'โครงการซิงค์กับไฟล์ Gradle') ที่จะล้างเครื่องหมาย

การอัพเดตmanifest.xmlเช่นการลบการอ้างอิงถึงระดับ SDK ในไฟล์รายการนั้นไม่จำเป็นใน Android Studio อีกต่อไป


7
build.gradle ของโครงการของฉันว่างเปล่า ไวยากรณ์ที่ต้องอัพเดทคืออะไร? --- โอ้มีสองไฟล์ build.gradle ฉันพบหนึ่งใน -> src มีรุ่นอื่น ๆ
— mobibob

4
การใช้คำแนะนำนี้ทำให้ฉันสามารถซิงค์สิ่งต่าง ๆ ได้ แต่ฉันต้องออกจาก Android Studio ก่อนที่การคอมไพล์จะไม่มีข้อผิดพลาด ฉันทำตามขั้นตอนเล็ก ๆ น้อย ๆ หลายครั้งดังนั้นฉันจึงไม่รู้ว่าขั้นตอนที่จำเป็นจริงๆคืออะไร
— mobibob

5
ทำไมพวกเขาถึงทำให้ลูกเจ็บปวดอย่างนี้? ดูเหมือนจะจำในคราสฉันมีเพียงการทำเช่นนี้ในที่เดียว ...
— คณบดีป่า

1
@DeanWild ใน Android Studio ก็เช่นกันในที่เดียว ลืมระดับ API ในไฟล์รายการ
— Sotti

2
สำหรับผู้เริ่มต้นใน Android Studio "Sync gradle button" ตั้งอยู่ในTools -> Android -> Sync Project with Gradle Files"Rebuild project"Build -> Rebuild Project
— CGR

169

สำหรับผู้ใช้ android studio:

  1. คลิกขวาที่ไดเรกทอรีแอพ
  2. เลือกตัวเลือก "การตั้งค่าโมดูล"
  3. เปลี่ยนแพลตฟอร์ม ADK ตามที่คุณต้องการ
  4. คลิกนำไปใช้

ระดับเสียงจะสร้างโครงการโดยอัตโนมัติ


3
วิธีแก้ปัญหาที่กล่าวมาคือวิธีที่ดีที่สุดสำหรับฉัน ปล่อยให้เครื่องมือทำการเปลี่ยนแปลงที่จำเป็นทั้งหมดด้วยตัวคุณเองเล่นซอกับไฟล์ต่าง ๆ เสี่ยงต่อการถูกขันหรือลืมรายละเอียดที่สำคัญ
— GeertVc

2
สิ่งนี้ไม่ทำงานใน Studio 0.8.2 คุณสามารถเปลี่ยนการตั้งค่าและกด aplly ได้ แต่สตูดิโอจะไม่สนใจสิ่งนี้ <br/> วิธีแก้ไข: - ปิด Android Studio - แก้ไข "/app/build.gradle" - เปลี่ยนรายการ SDK-MinVersion - เริ่มการซิงค์ Android Studio Gradle ใหม่โดยอัตโนมัติ
— Martin

ใน Studio 1.4 คุณต้องดูในแท็บ "Flavours" ดูคำตอบของ priyankvex
— Yannick

ใน Studio 3.5 คุณต้องคลิกแท็บ "การกำหนดค่าเริ่มต้น" แท็บรสชาติไม่ปรากฏว่ามีอยู่อีกแล้ว
— รวมไม่มี

135

ขณะนี้ Android Studio มีเสถียรภาพจึงมีวิธีที่ง่ายในการทำ

  1. คลิกขวาที่ไฟล์โครงการของคุณ
  2. เลือก "เปิดการตั้งค่าโมดูล"
  3. ไปที่แท็บ "รสชาติ"

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

  1. เลือกเวอร์ชั่น SDK ขั้นต่ำจากรายการดรอปดาวน์

PS:แม้ว่าคำถามนี้จะได้รับคำตอบแล้ว แต่ Android Studio ก็เปลี่ยนไปเล็กน้อยจากการปล่อยเสถียร ดังนั้นวิธีการตรงไปตรงมาง่าย ๆ จะช่วยให้ผู้ค้นหาคำตอบใหม่ ๆ


1
การแก้ไขไฟล์ gradle นั้นใช้ไม่ได้สำหรับฉัน แต่มันก็เป็นเช่นนั้น ขอบคุณ!
— Al0x

1
สิ่งนี้มีการเปลี่ยนแปลงอีกครั้ง: แท็บ "รสชาติ" ไม่มีอีกแล้ว ในขั้นตอนที่ 3 ในพื้นที่การตั้งค่าโครงการให้คลิกโมดูลจากนั้นใช้กล่องแบบเลื่อนลงระดับโครงการเพื่อเลือกเวอร์ชัน API สิ่งนี้ไม่เหมือนกับการตั้งค่าเวอร์ชันขั้นต่ำ API แต่จะเป็นเวอร์ชันที่จะใช้สร้างแอพ
— hamx0r

นี่จะต้องเป็นคำตอบที่ได้รับการยอมรับ Android Studio เวอร์ชันใหม่ล่าสุดอย่างน้อย
— Vivekanand

3
ฉันได้รับเพียง api 23 ในรายการแบบเลื่อนลง ... ฉันต้องการ API 10
— รัชกาลที่ 85

1
นิดหน่อย? IDE ที่มีการเปลี่ยนแปลงนี้มีการเปลี่ยนแปลงอย่างมากระหว่างเวอร์ชันต่าง ๆ ซึ่งทำให้เกิดการหยุดชะงักในการเรียกใช้รหัสเก่า น่าสมเพชอย่างมากเมื่อเทียบกับมรดกของความเข้ากันได้แบบย้อนหลังที่ Microsoft เป็นตัวอย่าง
— 30478

10

ใน android studio คุณสามารถกด:

  1. Ctrl+ Shift+ +AltS
  2. หากคุณมีเวอร์ชันที่ใหม่กว่าandroid studioให้กดที่แอปก่อน จากนั้นดำเนินการตามขั้นตอนที่สามดังนี้
  3. หน้าต่างจะเปิดขึ้นพร้อมตัวเลือกมากมาย
  4. ไปที่Flavoursและนั่นคือทั้งหมดที่คุณต้องการ

คุณสามารถเปลี่ยนversionCodeแอพของคุณได้ที่นี่


6

ในbuild.gradleการเปลี่ยนminSdkVersion 13เป็นminSdkVersion 8สิ่งที่คุณต้องทำ ฉันแก้ไขปัญหาโดยทำสิ่งนี้เท่านั้น

defaultConfig {
    applicationId "com.example.sabrim.sbrtest"
    minSdkVersion 8
    targetSdkVersion 20
    versionCode 1
    versionName "1.0"
}

6

ตามคำตอบนี้คุณไม่ต้องรวม minsdkversion ใน manifest.xml และระบบบิลด์จะใช้ค่าจากไฟล์ build.gradle และใส่ข้อมูลลงใน apk สุดท้าย

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

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

โปรดสังเกตว่ามีอย่างน้อยสองbuild.gradleไฟล์: หนึ่งไฟล์และหนึ่งไฟล์สำหรับแอป / โมดูล สิ่งที่ต้องเปลี่ยนแปลงอยู่ในแอพ / โมดูลมันมีคุณสมบัติminSdkVersionในโครงการที่สร้างขึ้นใหม่แล้ว


5

หากคุณกำลังมีปัญหาการระบุเป้าหมาย SDK ไปยัง Google APIs แทนฐาน Platform SDK? เพียงแค่เปลี่ยนcompileSdkVersion 19ไปcompileSdkVersion "Google Inc.:Google APIs:19"


5

สำหรับ Android Studio v2.3.3 ล่าสุด (11 ตุลาคม 2017):
1. คลิกViewที่แถบเมนู
2. คลิกเปิดการตั้งค่าโมดูล
3. Flavorsแท็บเปิด
4. เลือกSdkเวอร์ชันขั้นต่ำที่คุณต้องการ
หน้าต่างโครงสร้างโครงการ IDE 6. คลิกตกลง


4

เช่นเดียวกับการอัปเดตรายการให้อัปเดตbuild.gradleไฟล์ของโมดูลด้วย (แสดงอยู่ในบานหน้าต่างโครงการด้านล่างรายการ - หากไม่มีminSdkVersionคีย์อยู่ในรายการคุณกำลังดูสิ่งที่ไม่ถูกต้องเนื่องจากมีคู่) การสร้างใหม่และสิ่งต่าง ๆ ควรจะดี ...


3

ใน Android studio เปิด build.gradle และแก้ไขส่วนต่อไปนี้:

defaultConfig {
    applicationId "com.demo.myanswer"
    minSdkVersion 14
    targetSdkVersion 23
    versionCode 1
    versionName "1.0"
}

ที่นี่คุณสามารถเปลี่ยน minSdkVersion จาก 12 เป็น 14


1

การเปลี่ยน minSdkVersion ในรายการไม่จำเป็น หากคุณเปลี่ยนในไฟล์ build gradle ดังที่แสดงด้านล่างคุณจะทำสิ่งที่คุณต้องทำให้สำเร็จ

defaultConfig {
   applicationId "com.demo.myanswer"
   minSdkVersion 14
   targetSdkVersion 23
   versionCode 1
   versionName "1.0"
}

0

สำหรับฉันสิ่งที่ทำงานคือ: (คลิกขวา) โครงการ -> เครื่องมือ android-> เครื่องหมายผ้าสำลีที่ชัดเจน แม้ว่าด้วยเหตุผลบางอย่าง Manifest จะเปลี่ยนกลับไปเป็นระดับ API ขั้นต่ำเก่า (ต่ำกว่า) แต่หลังจากฉันเปลี่ยนกลับไปเป็นระดับ API ใหม่ (สูงกว่า) ไม่มีข้อผิดพลาดสีแดงขีดเส้นใต้และโครงการใช้ระดับ API ขั้นต่ำใหม่

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



0

ไฟล์> โครงสร้างโครงการ> โมดูลที่คุณสามารถเปลี่ยนได้จากที่นั่น

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