मैंने एक जीथब रिपॉजिटरी पर क्लोन किया है क्योंकि मैं कोड का अध्ययन करना चाहता था, लेकिन जब मैंने इसे एंड्रॉइड स्टूडियो में बनाने की कोशिश की, तो मैं कुछ परेशानी में भाग गया। Google मावेन रिपॉजिटरी (जैसा कि एंड्रॉइड स्टूडियो द्वारा संकेत दिया गया है) को जोड़ने और ग्रेडल प्लगिन संस्करण और ग्रेड संस्करण (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'
}
यहाँ मैंने जो अभी तक कोशिश की है:
- मेरे मॉड्यूल 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"
}
मुझे लगता है कि मैंने इस सवाल में ज्यादातर सब कुछ करने की कोशिश की है: एंड्रॉइड स्टूडियो ग्रेडल बिल्ड से कुछ फ़ाइलों को कैसे बाहर रखा जाए?
कुछ भी काम नहीं किया।
समाधान की खोज करने के बाद, मुझे लगता है कि समस्या यह है कि मेरे पास निर्भरताएं हैं। इसलिए मैंने निम्नलिखित कोशिश की है:
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'
}
मुझे अब भी वही त्रुटि मिलती है।
क्या कोई मुझे बता सकता है कि मैं क्या गलत कर रहा हूं? तुम्हारे पूर्वानुमान के लिए धन्यवाद। :)