คำตอบ:
ข้อผิดพลาดนี้เกิดขึ้นเนื่องจากcompileSdkVersion
เวอร์ชันของไลบรารีที่ไม่ตรงกัน
ตัวอย่างเช่น:
compileSdkVersion 27
implementation 'com.android.support:appcompat-v7:26.1.0'
implementation 'com.android.support:design:26.1.0'
และหลีกเลี่ยงการใช้เครื่องหมาย + กับไลบรารีดังต่อไปนี้:
implementation 'com.android.support:appcompat-v7:26.+'
ใช้เวอร์ชันไลบรารีที่แน่นอนเช่นนี้
implementation 'com.android.support:appcompat-v7:26.1.0'
การใช้เครื่องหมาย + กับไลบรารีทำให้กระบวนการสร้างรวบรวมเวอร์ชันที่ต้องการได้ยากขึ้นทำให้ระบบไม่เสถียรดังนั้นจึงไม่ควรท้อถอย
หากคุณย้ายข้อมูลสำหรับ AndroidX และได้รับข้อผิดพลาดนี้คุณต้องตั้งค่า SDK คอมไพล์เป็น Android 9.0 (API ระดับ 28) หรือสูงกว่า
ฉันมีปัญหาเดียวกันแน่นอน เธรดต่อไปนี้ช่วยฉันแก้ปัญหาได้ เพียงตั้งค่าเวอร์ชัน Compile SDK ของคุณเป็น Android P.
https://stackoverflow.com/a/49172361/1542720
ฉันแก้ไขปัญหานี้โดยเลือก:
API 27+: Android API 27, ตัวอย่าง P (พรีวิว)
ในการตั้งค่าโครงสร้างโครงการ ภาพต่อไปนี้แสดงการตั้งค่าของฉัน ข้อผิดพลาด 13 ข้อที่เกิดขึ้นขณะสร้างแอปหายไป
compileSdkVersion
และbuildToolsVersion
เป็น 28 และปล่อยให้targetSdkVersion
เป็นรุ่นที่ต่ำกว่า
ตรวจสอบการอ้างอิงของคุณสำหรับการใช้งาน+
ในเวอร์ชัน com.android.support:appcompat-v7:+
บางคนอาจจะมีการพึ่งพาการใช้ สิ่งนี้นำไปสู่ปัญหาเมื่อมีการเปิดตัวเวอร์ชันใหม่และอาจทำลายคุณลักษณะต่างๆ
วิธีแก้ปัญหานี้จะใช้com.android.support:appcompat-v7:{compileSdkVersion}.+
หรือไม่ใช้+
เลยและใช้เวอร์ชันเต็ม (เช่นcom.android.support:appcompat-v7:26.1.0
)
หากคุณไม่เห็นบรรทัดในไฟล์ build.gradle ของคุณสำหรับสิ่งนี้ให้เรียกใช้ในเทอร์มินัลสตูดิโอ android เพื่อให้ภาพรวมของการพึ่งพาแต่ละครั้งใช้
gradlew -q dependencies app:dependencies --configuration debugAndroidTestCompileClasspath
(รวมการอ้างอิง androidtest)
หรือ
gradlew -q dependencies app:dependencies --configuration debugCompileClasspath
(การอ้างอิงปกติสำหรับการดีบัก)
ซึ่งส่งผลให้เกิดสิ่งที่ใกล้เคียงกับสิ่งนี้
------------------------------------------------------------
Project :app
------------------------------------------------------------
debugCompileClasspath - Resolved configuration for compilation for variant: debug
...
+--- com.android.support:appcompat-v7:26.1.0
| +--- com.android.support:support-annotations:26.1.0
| +--- com.android.support:support-v4:26.1.0 (*)
| +--- com.android.support:support-vector-drawable:26.1.0
| | +--- com.android.support:support-annotations:26.1.0
| | \--- com.android.support:support-compat:26.1.0 (*)
| \--- com.android.support:animated-vector-drawable:26.1.0
| +--- com.android.support:support-vector-drawable:26.1.0 (*)
| \--- com.android.support:support-core-ui:26.1.0 (*)
+--- com.android.support:design:26.1.0
| +--- com.android.support:support-v4:26.1.0 (*)
| +--- com.android.support:appcompat-v7:26.1.0 (*)
| +--- com.android.support:recyclerview-v7:26.1.0
| | +--- com.android.support:support-annotations:26.1.0
| | +--- com.android.support:support-compat:26.1.0 (*)
| | \--- com.android.support:support-core-ui:26.1.0 (*)
| \--- com.android.support:transition:26.1.0
| +--- com.android.support:support-annotations:26.1.0
| \--- com.android.support:support-v4:26.1.0 (*)
+--- com.android.support.constraint:constraint-layout:1.0.2
| \--- com.android.support.constraint:constraint-layout-solver:1.0.2
(*) - dependencies omitted (listed previously)
หากคุณไม่สามารถควบคุมการเปลี่ยนเวอร์ชันได้ให้ลองบังคับให้ใช้เวอร์ชันเฉพาะ
configurations.all {
resolutionStrategy {
force "com.android.support:appcompat-v7:26.1.0"
force "com.android.support:support-v4:26.1.0"
}
}
การพึ่งพากำลังอาจต้องแตกต่างกันขึ้นอยู่กับสิ่งที่ตั้งค่าเป็น 28.0.0
ลองเปลี่ยน compileSdkVersion เป็น: compileSdkVersion 28
นี่เป็นเพราะการใช้งาน compileSdkVersion, buildToolsVersion และ Dependecies ไม่ตรงกันคุณต้องทำเช่นนี้ฉันมี 28 ไลบรารีแล้ว
compileSdkVersion 28
targetSdkVersion 28
buildToolsVersion 28.0.3
implementation 'com.android.support:design:28.0.0'
implementation 'com.android.support:appcompat-v7:28.0.0'
หากคุณใช้ใด ๆ ที่น้อยกว่า 28 ข้อผิดพลาดนี้ควรเกิดขึ้นดังนั้นโปรดลองใช้ไลบรารีการจับคู่ทั้งหมด
มีปัญหาเดียวกันในขณะที่ทำงานกับแอปพลิเคชันที่มีโมดูลหลายตัวตรวจสอบให้แน่ใจว่าเมื่อคุณเพิ่มค่าcompileSdkVersion
และtargetSdkVersion
เป็น 28+ ค่าในโมดูลที่คุณทำเพื่อคนอื่น ๆ
โมดูลกำลังวิ่งอยู่บนcompileSdkVersion 29
และtargetSdkVersion 29
ในขณะที่โมดูลที่สองของการประยุกต์ใช้กำลังวิ่งอยู่บนและcompileSdkVersion 27
targetSdkVersion 27
การเปลี่ยนโมดูลที่สองเพื่อรวบรวมและกำหนดเป้าหมาย SDK เวอร์ชัน 29 ช่วยแก้ปัญหาของฉันได้ หวังว่านี่จะช่วยใครบางคนได้
อาจจะสายเกินไป แต่ฉันพบวิธีแก้ปัญหา:
คุณจะต้องแก้ไขในbuild.gradle
ทั้งcompileSdkVersion
-> ไปล่าสุด (ตอนนี้มันเป็น 28) เช่นนั้น:
android {
compileSdkVersion 28
defaultConfig {
applicationId "NAME_OF_YOUR_PROJECT_DIRECTORY"
minSdkVersion 21
targetSdkVersion 28
versionCode 1
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
หรือคุณสามารถเปลี่ยนเวอร์ชันของการใช้งานได้:
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
api 'com.android.support:design:27.+'
implementation 'com.android.support:appcompat-v7:27.1.1'
implementation 'com.android.support.constraint:constraint-layout:1.1.2'
testImplementation 'junit:junit:4.12'
androidTestImplementation 'com.android.support.test:runner:1.0.2'
androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
}
พบปลั๊กอินที่เรียบร้อยเพื่อแก้ปัญหานี้: cordova-android-support-gradle-release
ปลั๊กอิน Cordova เพิ่ม Cordova-android-support-gradle-release --variable ANDROID_SUPPORT_VERSION = 27. + - บันทึก
ต้องใช้การอ้างอิงตามที่แสดงด้านล่างเพื่อแก้ปัญหานี้:
dependencies {
implementation fileTree(include: ['*.jar'], dir: 'libs')
implementation 'com.android.support.constraint:constraint-layout:1.0.2'
testImplementation 'junit:junit:4.12'
androidTestImplementation 'com.android.support.test:runner:1.0.1'
androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.1'
implementation 'com.android.support:support-v4:27.1.0'
implementation 'com.android.support:appcompat-v7:27.1.0'
implementation 'com.android.support:recyclerview-v7:27.1.0'
}
โปรดอย่าใช้เวอร์ชันของ:
v7: 28.0.0-alpha1
ฉันประสบปัญหาเดียวกัน แต่ฉันแก้ไขปัญหาได้สำเร็จโดยเปลี่ยนเวอร์ชันของ compileSdkVersion เป็นเวอร์ชันล่าสุดซึ่งเป็น 29 และเปลี่ยนเวอร์ชันของ targetSdkVersion เป็นเวอร์ชันล่าสุดซึ่งเป็น 29
ไปที่ไฟล์ gradile.build และเปลี่ยน compilesdkversion และ targetdkversion
ในกรณีของฉันฉันลองแล้วFile
> Invalidate Cache/Restart
และมันก็เหมาะกับฉัน
ในกรณีของฉันข้อผิดพลาดนี้เกิดขึ้นในขณะที่ฉันใช้ไฟล์
implementation 'com.android.support:appcompat-v7:+'
implementation 'com.android.support:design:+'
ห้องสมุดร่วมกับ googles
implementation 'com.google.android.material:material-components:+'
ห้องสมุด. หากเป็นกรณีนี้ในโปรเจ็กต์ของคุณฉันขอแนะนำอย่างยิ่งให้ลบไลบรารีส่วนประกอบของ Google ออกจากโปรเจ็กต์ของคุณ
buildscript {
project.ext {
supportLibVersion = '27.1.1'
compileVersion = 28
minSupportedVersion = 22
}
}
และตั้งค่าการอ้างอิง:
implementation "com.android.support:appcompat-v7:$project.supportLibVersion"
compileSdkVersion 27
และcompileSdkVersion 28
เปลี่ยนcompileSdkVersion
เป็น28
แก้ไขปัญหา