Android Studio और Gradle के साथ ViewPagerIndicator लाइब्रेरी का उपयोग करना


118

मैं जेक व्हार्टन की ViewPagerIndicator लाइब्रेरी का उपयोग करने की कोशिश कर रहा हूं , लेकिन मैं इसे एंड्रॉइड स्टूडियो में अपने ग्रेडल प्रोजेक्ट के साथ काम करने में असमर्थ हूं।

मैं इसे एक निर्भरता के रूप में जोड़ता हूं:

    dependencies {
       // ... other ommitted
       compile 'com.viewpagerindicator:library:2.4.1'
       compile 'com.android.support:support-v4:19.0.1'
       compile 'com.nineoldandroids:library:2.4.0'
       // ...
    }

लेकिन परियोजना पुस्तकालय में किसी भी घटक को पहचानने के लिए प्रतीत नहीं होती है। मुझे आश्चर्य हो रहा है कि क्या अलग-अलग समर्थन-वी 4 संस्करणों के साथ एक निर्भरता का मुद्दा है या नौनोल्ड्रॉइड्स में कुछ है ...?

जवाबों:


199

मैंने सिर्फ मावेन केंद्रीय के अंदर एक संस्करण को धकेला है ताकि आपको केवल उस निर्भरता को जोड़ने की आवश्यकता हो:

compile 'fr.avianey.com.viewpagerindicator:library:2.4.1.1@aar'

और मावेन केंद्रीय को इस तरह घोषित करें:

repositories {
    mavenCentral()
}

आशा करता हूँ की ये काम करेगा...


4
धन्यवाद। मैं अपनी निर्माण स्क्रिप्ट में कुछ यादृच्छिक मावेन भंडार जोड़ना नहीं चाहता था। यह बहुत बेहतर है।
ग्रेग एनिस

मैंने उक्त निर्भरता को जोड़ा है, लेकिन यह ढाल निर्माण पर हल करने में विफल रहता है। सटीक त्रुटि: Failed to resolve: fr.avianey.com.viewpagerindicator:library:2.4.1 कोई भी कारण क्यों?
रॉकडेजेकेगॉड

क्या आपने रिपॉजिटरी को सही सेक्शन में जोड़ा है ... मेरा मतलब है कि प्लगइन रिपॉजिटरी में नहीं ...
avianey

मैंने इसे dependencyअलग-अलग मॉड्यूल build.gradleफ़ाइल में अनुभाग में जोड़ा । यहाँ
रॉकडेजेकेगोड

2
fr.avianey.com.viewpagerindicator: पुस्तकालय: 2.4.1@AR - आपको @AR याद आ रही है
Mark

147

पार्टी में थोड़ा देर से, लेकिन यहाँ:

जेक व्हार्टन ने इसे अनवार के रूप में मावेन में जारी नहीं किया। हालाँकि यह एक समूह है, जिसने इसे अपने सर्वर के माध्यम से उपलब्ध कराया है, आप इसे अपने build.gradle में इस तरह सेट कर सकते हैं:

अपने प्लग इन की घोषणा करने के बाद इसे अपने स्रोत रिपॉजिटरी में जोड़ें:

repositories {
    maven { url "http://dl.bintray.com/populov/maven" }
    mavenCentral()
}

यह उनके मावेन रेपो का स्रोत होगा, जिसमें एक पैक अनार होता है जो वे एक साथ डालते हैं। एक बार ऐसा करने के बाद, आप बस अपनी निर्भरता के लिए इस लाइन को जोड़ सकते हैं और सब कुछ काम करना चाहिए एक बार जब आप अपनी परियोजना को अपनी वर्गीकृत फ़ाइलों के साथ सिंक करते हैं।

सुनिश्चित करें कि मावेन रेपो mavenCentral()प्रविष्टि के ऊपर सूचीबद्ध है । अन्यथा, यह पहले मावेन के केंद्रीय भंडार में दिखेगा और गलत पैकेज ढूंढेगा।

एंड्रॉइड स्टूडियो build.gradleपरियोजनाओं के लिए दो फाइलें बनाता है , सुनिश्चित करें कि आपने इसे सही में डाला है!

dependencies {
    // ...
    compile 'com.viewpagerindicator:library:2.4.1@aar'
    // ...
}

यदि आप एक कार्यशील उदाहरण देखना चाहते हैं तो हम इसका उपयोग अपने ऐप में करते हैं:

https://github.com/pandanomic/SUREwalk_android/blob/master/surewalk/build.gradle


5
धन्यवाद! बस यह टिप्पणी करना चाहता था कि बिंट्रे रेपो मावेनसेन्ट्रल () से ऊपर होना चाहिए। आप इसे पढ़ सकते हैं: blog.haunted-soft.com/2013/10/…
फेरन मैलिंच

5
यह अब काम नहीं करता है - मैंने चरणों का पालन किया और जब एंड्रॉइड स्टूडियो परियोजना को ताज़ा करता है तो मुझे "ग्रैडल 'एक्सवाईजेड' प्रोजेक्ट ताज़ा हो गया: कलाकृतियों की कॉम .viewpagerindicator: पुस्तकालय: 2.4.1: Library.AR. पाया नहीं गया
ल्यूक

30
बहुत सारे मैकिंग के बाद मैंने एंड्रॉइड स्टूडियो के हाल के संस्करणों को दो ग्रेडल फ़ाइलों के साथ प्रोजेक्ट्स का निर्माण किया है - एक ऐप के अंदर / build.gradle पर और एक /build.gradel पर - रूट डायरेक्टरी में एक वह जगह है जहां आप कॉन्फ़िगरेशन विकल्पों को जोड़ सकते हैं सभी उप-परियोजनाओं / मॉड्यूल के लिए। आपको लगाने की आवश्यकता है: allprojects {repositories {maven {url " dl.bintray.com/populov/maven "} mavenCentral ()}} शीर्ष स्तर में build.gradle काम करने के लिए
ल्यूक स्लीमैन

67
ध्यान अब निर्भरता 'com.viewpagerindicator: लाइब्रेरी: 2.4.1' के संदर्भ में है: [संदर्भ:] mvnrepository.com/artifact/com.viewpagerindicator/library/2.4.1
रिकार्डो

4
@OlegVaskevich आप गलत लाइब्रेरी संकलित करने की कोशिश कर रहे हैं। आपको उपरोक्त उत्तर में दिए गए बिंट्रे रेपो में आरा का उपयोग करने की आवश्यकता है। इस थ्रेड में गलत जानकारी है जो लोगों को मेरे उत्तर में खराब संपादन करने में मदद नहीं कर रहा है।
ज़ैक स्वीपर

56

मैं एंड्रॉइड स्टूडियो 0.8.2 के साथ 0.10 + + ग्रेड का उपयोग कर रहा हूं और स्वीकृत उत्तर मेरे लिए काम नहीं करता है। एबीएस को अपनी परियोजना में काम करने के लिए मुझे ये थोड़े बदलाव करने होंगे:

build.gradleअपनी परियोजना के शीर्ष स्तर फ़ाइल में allprojectsइस तरह से विन्यास में मावेन भंडार जोड़ें :

allprojects {
   repositories {
      maven { url "http://dl.bintray.com/populov/maven" }
      mavenCentral()
   }
}

और मॉड्यूल की build.gradleफ़ाइल में निर्भरता को बिना जोड़े @aar:

dependencies {
   // ...
   compile 'com.viewpagerindicator:library:2.4.1'
   // ...
}

यह भी ध्यान दें कि यदि आप कहीं और समर्थन पुस्तकालय का उपयोग कर रहे हैं और इसे आपकी निर्भरता में जोड़ा गया है, तो आपको एक अजीब त्रुटि मिल सकती है क्योंकि व्यूपेज़र भी समर्थन v4 के अपने स्वयं के संस्करण में लाता है। इस लिंक को देखें - stackoverflow.com/questions/20989317/…
trippedout

49

इस स्थिति के लिए Jitpack.io बहुत अच्छा है।

सबसे पहले, निम्नलिखित भंडार जोड़ें:

repositories {
    // ...
    maven { url "https://jitpack.io" }
}

फिर, GitHub रेपो को इंगित करने वाली निर्भरता जोड़ें:

dependencies {
    compile 'com.github.JakeWharton:ViewPagerIndicator:2.4.1@aar'
}

दिन धन्यवाद सहेजा गया :) मैं आपका जवाब कहीं और stackoverflow.com/questions/25702884/… पोस्ट करूंगा ।
मुहम्मद

@ जुआन एंड्रेस - क्या यह ठीक है अगर मैं केवल ग्रेड ले सकता हूं?
RoCk RoCk

26

इसे अपने ऐप मॉड्यूल की निर्भरता में जोड़ें। बिल्ड फ़ाइल जैसे:

dependencies {
   compile 'com.github.JakeWharton:ViewPagerIndicator:2.4.1'
   ...
}

1
Idd यह सही तरीका है इसे करने का। चूंकि यह 3th पार्टी साइट्स को छोड़ते हुए सीधे GitHub के स्रोत प्रोजेक्ट पर जाता है।
user2408952

8

मैंने इसी का अनुसरण करते हुए चाल चली। पुस्तकालय या कुछ भी आयात करने की आवश्यकता नहीं है। बस दो कदम और बिंगो, यह पूरी तरह से काम करता है।

Build.gradle (प्रोजेक्ट: ...) में:

allprojects {
        repositories {
            ...
            maven { url "https://jitpack.io" }
        }
    }

बिल्ड.ग्रेड में (मॉड्यूल: एप्लिकेशन):

dependencies {
            compile 'com.github.JakeWharton:ViewPagerIndicator:2.4.1'
    }

5

मैं किसी भी उत्तर के साथ परियोजना को आयात करने का प्रबंधन नहीं कर सका। मैं एंड्रॉइड स्टूडियो 0.8.6 और ग्रेडेल 1.12 का उपयोग कर रहा हूं।

एकमात्र समाधान जो मैं लेकर आया था, .AR पुस्तकालय से डाउनलोड कर रहा था:

http://dl.bintray.com/populov/maven/com/viewpagerindicator/library/2.4.1/

और फिर लाइब्रेरी को इस तरह से आयात करें:

 repositories {
      flatDir {
        dirs 'libs'}
   }

 dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.android.support:appcompat-v7:20.0.0'
    compile(name:'library-2.4.1', ext:'aar') 
  }

उम्मीद है की यह मदद करेगा!


2
बस स्पष्ट करने के लिए, library-2.4.1.aarअपने मॉड्यूल की libsनिर्देशिका में रखा जाना चाहिए, जिसे आपको बनाना चाहिए अगर यह पहले से मौजूद नहीं है।
सैम

4

मैं स्टूडियो 0.8.6 और ग्रेडल 1.12 का उपयोग कर रहा हूं

मेरी परियोजना में एक अंतर यह हो सकता है कि मैं भी कॉम्बैटबिलिटी लाइब्रेरी का उपयोग कर रहा हूं, जिसने support-v4दो बार काम करने की शिकायत के बारे में शिकायत की है ।

इसलिए मुझे पहले से ही support-v4इस तरह से बाहर करना पड़ा :

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.android.support:support-v4:19.0.1'
    compile 'com.android.support:appcompat-v7:19.0.1'    
    compile ('com.viewpagerindicator:library:2.4.1') {
        exclude module: 'support-v4'
    }
}

फिर इसने AndroidManifest.xmlदो बार फाइल होने की भी शिकायत की ।

तो मैं भी इस तरह exclude 'AndroidManifest.xml'से androidअनुभाग में जोड़ा :

android {
    packagingOptions {
        exclude 'AndroidManifest.xml'
    }

फिर काम हुआ।


काम नहीं कर रहा है: त्रुटि: निर्भरता के लिए पैकेजिंग com.viewpagerindicator: पुस्तकालय: 2.4.1 'एपीकेलिब' है और समर्थित नहीं है। केवल Only आरा ’पुस्तकालयों का समर्थन किया जाता है।
गोविंदा पालीवाल 15

3

कृपया सुनिश्चित करें कि समर्थन: support-v4 सभी lib और तुम्हारा अनुप्रयोग में समान है, कभी-कभी यह समस्या का कारण बनता है इसलिए समान समर्थन का उपयोग करें: support-v4 libs और आपके ऐप प्रोजेक्ट पर।


हाँ, यह एक संभावना है। V4 समर्थन लाइब्रेरी ( github.com/JakeWharton/Android-ViewPagerIndicator/pull/271 ) को अपडेट करने के लिए एक पुल अनुरोध खुला है । ऐसा नहीं लगता है कि इस परियोजना को सक्रिय रूप से बनाए रखा जा रहा है ... :(
loeschg

अरे, लेकिन ViewPagerInidicator Android लाइब्रेरी है। इसका मतलब है कि अगर वे मावेन का उपयोग करते हैं तो यह संभवतया सबसे ज्यादा एपीकेलिब आर्टिफैक्ट और ग्रेडेल युद्ध के साथ काम करता है
यूजेन मार्टिनोव

3

जवाब के रूप में चिह्नित पद मेरे लिए काम नहीं किया ... ग्रैडल ने "कनेक्शन मना कर दिया" के बारे में शिकायत की।

यह देखते हुए कि ऐसा लग रहा है कि यह इस समय के बाद स्थिर है, मैं सिर्फ ab फ़ाइल को https://bintray.com/populov/maven/com.viewpagerindicator:library से डाउनलोड करता हूं , अपने लिबास फ़ोल्डर में कॉपी करता हूं, और इसे इस तरह संदर्भित करता हूं:

dependencies {
...
compile 'com.viewpagerindicator:library:2.4.1@aar'
}

अजीब है कि। मैंने इस सप्ताह के शुरू में इसे दूसरे प्रोजेक्ट में जोड़ने के लिए एक ही विधि का उपयोग किया था और यह अभी भी मेरे लिए ठीक काम करता है: /
Zac Sweers

1
यह अब सही सलाह नहीं है, क्योंकि @AR प्रत्यय की अब आवश्यकता नहीं है।
जॉन हैमिलिंक

4
मेरे लिए काम नहीं किया; मिल गया Artifact 'library.aar (com.viewpagerindicator:library:2.4.1)' not found. Searched in the following locations: https://jcenter.bintray.com/com/viewpagerindicator/library/2.4.1/library-2.4.1.aar
सैम

2

इसी से मेरा काम बना है:

repositories {
   jcenter()
// maven { url "http://dl.bintray.com/populov/maven" }
   mavenCentral()
}

यानी, रेपो URL का उपयोग न करें।

फिर उपयोग करें:

dependencie {
    ....
    compile 'com.mcxiaoke.viewpagerindicator:library:2.4.1@aar'
    ....
}

2
Add it in your build.gradle at the end of repositories:
Ste 1
 repositories {
        // ...
        maven { url "https://jitpack.io" }
    }
Step 2. Add the dependency in the form

    dependencies {
            compile 'com.github.JakeWharton:ViewPagerIndicator:2.4.1@aar'
    }

2

दूसरों के सामने मावेन रिपॉजिटरी डालने का भी प्रयास करें।

 buildscript {
    repositories {
        maven { url "http://dl.bintray.com/populov/maven" }
        mavenCentral()
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:1.3.0'

        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
}

allprojects {
    repositories {
        maven { url "http://dl.bintray.com/populov/maven" }
        mavenCentral()
        jcenter()
    }
}

और निर्भरता के साथ निर्माण:

  apply plugin: 'com.android.application'

android {
    compileSdkVersion 23
    buildToolsVersion "23.0.1"

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

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.android.support:appcompat-v7:23.0.1'
    compile 'com.viewpagerindicator:library:2.4.1'
}

2

विविधता के लिए यहाँ एक उत्तर है जो मावेन का उपयोग नहीं करता है:

  1. ViewPagerIndicator से जिप / tgz डाउनलोड करें

  2. प्रोजेक्ट विंडो में, प्रोजेक्ट नेविगेशन चुनें।

  3. प्रोजेक्ट> न्यू> मॉड्यूल पर जाएं।

  4. आयात ग्रेड परियोजना

  5. ब्राउज़ करें और अनज़िप किए गए लाइब्रेरी फ़ोल्डर का चयन करें। मॉड्यूल का नाम जो भी आप चाहते हैं। मैंने इसका नाम रखाviewPagerIndicator

  6. जब तक आप अंतिम विंडो पर नहीं पहुंचते, तब तक क्लिक करते रहें, जहां Finishक्लिक करने योग्य हो। यदि आपको Android Support Library is not installedसंदेश मिलता है , तो चिंता न करें। बस आगे बढ़ो और क्लिक करें Finish

  7. खत्म करने के लिए ढाल निर्माण और परियोजना संकलन की प्रतीक्षा करें। एक बार पूरा होने पर, इसे निर्भरता में जोड़ें {..} build.gradle (Module:app):

     compile project(':viewPagerIndicator')

पुस्तकालय अब आपके उपयोग के लिए उपलब्ध है।


0

कृपया इसे पहले जांचें

एंड्रॉइड स्टूडियो - संयुक्त शीर्ष स्तर की मान्यता:

यदि ये जांच ठीक हैं, तो नीचे उल्लेख किया गया है।

अपने मॉड्यूल की निर्भरता के रूप में support-v4 को शामिल करने की आवश्यकता नहीं है क्योंकि ViewPagerIndicator लाइब्रेरी में पहले से ही निर्भरता के रूप में समर्थन-v4 है। तो आप टूलबार में उपलब्ध छोटे प्यारे ग्रेडेल बटन का उपयोग करके उस को हटाने और सिंक के साथ सिंक करने का प्रयास कर सकते हैं -

यहां छवि विवरण दर्ज करें

अपने प्रश्न को अपडेट करें यदि आपको सिंक करने में कोई त्रुटि मिल रही है।

अद्यतन:

मुझे यकीन नहीं है, लेकिन यह एक समस्या हो सकती है जो मुझे किसी भी ViewPagerIndicator लाइब्रेरी के आधार पर नहीं मिली। जैकवर्टन ने एंगल में एक्शनबर्सहॉक को स्थानांतरित कर दिया है लेकिन ViewPagerIndicator अभी भी मावेन का उपयोग कर रहा है।


धन्यवाद, @ pyus13 हाँ, नई निर्भरता जोड़ते समय वह सिंक प्रोजेक्ट बटन मेरा पहला कदम है। यह मुद्दा नहीं था। मैंने अपना प्रश्न अपडेट किया।
लोशेग

@loeschg मुझे यह नहीं मिला कि जैकवार्टन ने व्यूप्लेइंडिलेटर को ग्रेडेल में स्थानांतरित किया है। यह एक समस्या हो सकती है।
pyus13

0

आप बस यहाँ वर्णित के रूप में सीधे अपने आवेदन के भीतर ViewPagerIndicator पुस्तकालय शामिल कर सकते हैं

यह आपको अपने वर्तमान प्रोजेक्ट के लिए ViewPagerIndicator लाइब्रेरी को "मौजूदा प्रोजेक्ट" के रूप में आयात करने में सक्षम बनाता है।


0

मेरे लिए भी उपरोक्त समाधान में से किसी ने भी काम नहीं किया। लेकिन यह मेरे लिए काम किया।

  1. बस यहाँ से Viewpagerindicator Library में आवश्यक परिवाद शामिल करें

  2. इसे अपने ऐप मॉड्यूल के बिल्ड.ग्रेड में शामिल करें (आपके पास रिपॉजिटरी नहीं होगी बस इसे निर्भरता से ऊपर शामिल करें।

repositories {
    flatDir{
        dirs 'libs'
    }
}

  1. इसे अपनी निर्भरता में जोड़ें।

compile (name:'library-2.4.1',ext:'aar')


0

योग करने के लिए: आप http://mvnrepository.com/ में "ViewPagerIndicator" खोज सकते हैं , आपको यह पता चलेगा कि मूल com.viewpagerindicator में लाल मार्कर "एंड्रॉइड पैकेज" नहीं है, इसलिए आप इसे ग्रैडल के साथ उपयोग नहीं कर सकते। आप लाल मार्कर के साथ एक और एक पा सकते हैं, सुनिश्चित करें कि इसका मूल संस्करण के समान संस्करण है। (यानी कोई एक मूल के आधार पर एक Android पैकेज बनाएं)


0

इसमें नए ग्रेडेल का मुद्दा है। बस नीचे की तरह निर्भरता बदलें।

implementation 'com.inkapplications.viewpageindicator:library:2.4.3'
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.