ฉันโคลนที่เก็บ github เพราะฉันต้องการศึกษาโค้ด แต่เมื่อฉันพยายามสร้างมันใน Android Studio ฉันพบปัญหาบางอย่าง หลังจากเพิ่ม google maven repository (ดังที่ได้รับแจ้งจาก Android Studio) และอัปเดตทั้ง Gradle Plugin Version และ Grade Version (เป็น 3.5.2 และ 5.4.1 ตามลำดับ) การบิลด์ล้มเหลวเนื่องจากข้อผิดพลาดต่อไปนี้:
สาเหตุ: รายการที่ซ้ำกัน: META-INF / MANIFEST.MF
และนี่จะเฉพาะเจาะจงมากขึ้น:
เกิดจาก: java.util.zip.ZipException: รายการซ้ำ: META-INF / MANIFEST.MF
นี่คือไฟล์ build.gradle ระดับโครงการของฉัน:
buildscript {
repositories {
jcenter()
google()
}
dependencies {
classpath 'com.android.tools.build:gradle:3.5.2'
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
}
allprojects {
repositories {
jcenter()
maven {
url 'https://maven.google.com'
}
}
}
นี่คือโมดูล build.gradle ของฉัน (ก่อนลองทำอะไร):
apply plugin: 'com.android.application'
android {
compileSdkVersion 22
buildToolsVersion '28.0.3'
defaultConfig {
applicationId "com.thelittlenaruto.supportdesignexample"
minSdkVersion 11
targetSdkVersion 22
versionCode 1
versionName "1.0"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation ('com.android.support:appcompat-v7:22.2.1')
implementation ('com.android.support:design:22.2.1')
implementation 'com.github.frankiesardo:linearlistview:1.0.1@aar'
}
นี่คือสิ่งที่ฉันได้ลองมา:
- การเพิ่มสิ่งต่อไปนี้ในส่วน android ของโมดูล build.gradle ของฉัน:
sourceSets {
main{
java{
exclude '**/META-INF/MANIFEST'
exclude '**/META-INF/MANIFEST.MF'
exclude 'META-INF/MANIFEST'
exclude 'META-INF/MANIFEST.MF'
exclude '!META-INF/MANIFEST.MF'
}
}
}
- เพิ่มสิ่งนี้:
sourceSets.main.res.filter.exclude 'META-INF/MANIFEST'
sourceSets.main.res.filter.exclude 'META-INF/MANIFEST.MF'
- นอกจากนี้:
packagingOptions {
apply plugin: 'project-report'
exclude '**/META-INF/MANIFEST'
exclude '**/META-INF/MANIFEST.MF'
exclude 'META-INF/MANIFEST'
exclude 'META-INF/MANIFEST.MF'
exclude '!META-INF/MANIFEST.MF'
}
- และนี่:
packagingOptions {
pickFirst '**/META-INF/MANIFEST'
pickFirst '**/META-INF/MANIFEST.MF'
pickFirst 'META-INF/MANIFEST'
pickFirst 'META-INF/MANIFEST.MF'
pickFirst '!META-INF/MANIFEST.MF'
}
- นี้:
aaptOptions {
ignoreAssetsPattern "!META-INF/MANIFEST.MF"
ignoreAssetsPattern "META-INF/MANIFEST.MF"
}
ฉันคิดว่าฉันได้ลองทุกอย่างเป็นส่วนใหญ่ในคำถามนี้: จะแยกไฟล์บางไฟล์ออกจากการสร้าง gradle ของ Android Studio ได้อย่างไร
ไม่มีอะไรทำงาน
หลังจากค้นหาวิธีแก้ปัญหาแล้วฉันคิดว่าปัญหาคือฉันมีการอ้างอิงซ้ำซ้อน ดังนั้นฉันได้ลองทำสิ่งต่อไปนี้:
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation ('com.android.support:appcompat-v7:22.2.1'){
exclude module: 'support-v4'
}
implementation ('com.android.support:design:22.2.1')
implementation 'com.github.frankiesardo:linearlistview:1.0.1@aar'
}
และนี่:
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation ('com.android.support:design:22.2.1'){
exclude module: 'support-v7'
}
implementation 'com.github.frankiesardo:linearlistview:1.0.1@aar'
}
ฉันยังคงได้รับข้อผิดพลาดเดียวกัน
ใครช่วยกรุณาบอกฉันว่าฉันทำอะไรผิด ขอบคุณในความคาดหมาย :)