ViewPagerIndicator kitaplığını Android Studio ve Gradle ile kullanma


118

Jake Wharton'ın ViewPagerIndicator kitaplığını kullanmaya çalışıyorum , ancak Android Studio'daki Gradle projemle çalışmasını sağlayamıyorum.

Bunu şöyle bir bağımlılık olarak ekliyorum:

    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'
       // ...
    }

ancak proje kütüphanedeki herhangi bir bileşeni tanımıyor gibi görünüyor. Nineoldandroids'de farklı destek v4 sürümlerinde veya başka bir şeyde bir bağımlılık sorunu olup olmadığını merak ediyorum ...?

Yanıtlar:


199

Maven Central'ın içine bir sürüm koydum, bu yüzden sadece bu bağımlılığı eklemeniz gerekiyor:

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

Ve maven central'i şöyle ilan edin:

repositories {
    mavenCentral()
}

Umarım yardımcı olur...


4
Teşekkür ederim. Derleme betiğime rastgele bir maven deposu eklemek istemedim. Bu çok daha iyi.
Greg Ennis

Söz konusu bağımlılığı ekledim ancak gradle yapısında çözemedi. Kesin hata: Failed to resolve: fr.avianey.com.viewpagerindicator:library:2.4.1 Herhangi bir neden var mı?
rockydgeekgod

depoyu doğru bölüme eklediniz mi ... Yani eklenti depolarında değil ...
avianey

Bunu dependencybireysel modül build.gradledosyasındaki bölüme ekledim . İşte
rockydgeekgod

2
fr.avianey.com.viewpagerindicator: library: 2.4.1@aar - @aar'ı kaçırıyorsunuz
Mark

147

Partiye biraz geç ama burada:

Jake Wharton onu bir aar olarak maven'de yayınlamadı. Bir aar'ını sunucuları aracılığıyla kullanıma sunan bir grup var, build.gradle'ınızda bunu şu şekilde kurabilirsiniz:

Eklentilerinizi beyan ettikten sonra bunu kaynak depolarınıza ekleyin:

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

Bu, bir araya getirdikleri paketlenmiş bir aar içeren maven repolarına kaynak sağlayacaktır. Bunu yaptıktan sonra, bu satırı bağımlılıklarınıza ekleyebilirsiniz ve projenizi gradle dosyalarınızla senkronize ettiğinizde her şey çalışmalıdır.

Maven Repo'nun mavenCentral()girişin üzerinde listelendiğinden emin olun . Aksi takdirde, önce maven'in merkezi deposuna bakacak ve yanlış paketi bulacaktır.

Android Studio build.gradle, projeler için iki dosya oluşturur , bunu doğru dosyaya koyduğunuzdan emin olun!

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

Çalışan bir örnek görmek isterseniz bunu uygulamamızda kullanırız:

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


5
Teşekkürler! Bintray deposunun mavenCentral () 'ın üzerinde olması gerektiğini belirtmek istedim. Bunu okuyabilirsiniz: blog.haunted-soft.com/2013/10/…
Ferran Maylinch

5
Bu artık işe yaramıyor - Adımları takip ettim ve android stüdyosu projeyi yenilediğinde "Gradle 'XYZ' projesinin yenilenmesini alıyorum: Artifact 'com.viewpagerindicator: library: 2.4.1: library.aar' bulunamadı.
Luke Sleeman

30
Etrafta çok fazla uğraştıktan sonra, android stüdyosunun son sürümlerinin iki gradle dosyası içeren projeler ürettiğini gördüm - biri app / build.gradle'da ve diğeri /build.gradel'de - kök dizindeki, ortak yapılandırma seçeneklerini ekleyebileceğiniz yerdir tüm alt projelere / modüllere. Çalışması için en üst düzey build.gradle içine allprojects {repositories {maven {url " dl.bintray.com/populov/maven "} mavenCentral ()}} koymanız gerekir
Luke Sleeman,

67
dikkat şimdi bağımlılık derlenir 'com.viewpagerindicator: library: 2.4.1' [referans:] mvnrepository.com/artifact/com.viewpagerindicator/library/2.4.1
Ricardo Pessoa

4
@OlegVaskevich yanlış kitaplığı derlemeye çalışıyorsunuz. Yukarıdaki cevapta belirtilen bintray repo'sunda aar kullanmanız gerekir. Bu ileti dizisinde, cevabımda kötü düzenlemeler yapan insanlar tarafından yardım edilmeyen oldukça fazla yanlış bilgi var.
Zac Sweers

56

Android Studio 0.8.2 ile 0.10. + Gradle kullanıyorum ve kabul edilen yanıt benim için işe yaramadı. ABS'nin projemde çalışmasını sağlamak için yapmam gereken küçük değişiklikler şunlar:

build.gradleProjenizin en üst düzey dosyasında, allprojectsyapılandırmaya şu şekilde maven deposunu ekleyin :

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

Ve modülün build.gradledosyasında bağımlılığı şu olmadan ekleyin @aar:

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

Ayrıca, destek kitaplığını başka bir yerde kullanıyorsanız ve bağımlılıklarınıza eklediyseniz, tuhaf bir hata alabilirsiniz, çünkü görüntüleyici de kendi destek v4 sürümünü getirir. bu bağlantıya bakın - stackoverflow.com/questions/20989317/…
2014

49

Jitpack.io olan harika bu durum için.

İlk önce aşağıdaki depoyu ekleyin:

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

Ardından, GitHub deposuna işaret eden bağımlılığı ekleyin:

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

Günü kurtardığınız için teşekkürler :) Cevabınızı başka bir yere göndereceğim stackoverflow.com/questions/25702884/… .
Muhammed

@Juan Andres - Sadece notu alırsam sorun olur mu?
RoCk RoCk

26

Bunu, uygulama modülünüzün build.gradle dosyasındaki bağımlılıklarınıza şu şekilde ekleyin:

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

1
Bunu yapmanın doğru yolu budur. Doğrudan GitHub'daki kaynak projeye gittiği için 3. taraf siteleri atlar.
user2408952

8

Bunu takip ederek hile yaptım. Kitaplığı içe aktarmaya veya hiçbir şeye gerek yok. Sadece iki adım ve tombala, mükemmel çalışıyor.

Build.gradle'da (Proje: ...):

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

Build.gradle'da (Modül: uygulama):

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

5

Projeyi herhangi bir cevapla içe aktarmayı başaramadım. Android Studio 0.8.6 ve gradle 1.12 kullanıyorum.

Bulduğum tek çözüm .aar kitaplığını şuradan indirmekti:

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

ve sonra kitaplığı şu şekilde gradle olarak içe aktarın:

 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') 
  }

Bu yardımcı olur umarım!


2
Sadece açıklığa kavuşturmak için, library-2.4.1.aarmodülünüzün libsdizinine konulması gerekir, eğer zaten yoksa oluşturmanız gerekir.
Sam

4

Studio 0.8.6 ve Gradle 1.12 kullanıyorum

Projemdeki bir fark, gradle'ın, uyumluluk kitaplıklarını da kullanmam olabilirdi. support-v4 iki kez .

Bu yüzden zaten dahil edilenleri hariç tutmak zorunda kaldım 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'
    }
}

Daha sonra aynı zamanda AndroidManifest.xml dosyayı iki kez .

Ben de exclude 'AndroidManifest.xml'şu şekilde androidbölüme ekledim :

android {
    packagingOptions {
        exclude 'AndroidManifest.xml'
    }

Sonra çalıştı.


çalışmıyor: Hata: Bağımlılık için paketleme com.viewpagerindicator: kitaplık: 2.4.1 'apklib'dir ve desteklenmez. Yalnızca 'aar' kitaplıkları desteklenir.
Govinda Paliwal

3

lütfen support-v4'ün tüm kitaplıklarda ve sizin uygulamanızda aynı olduğundan emin olun, bazen soruna neden olur, bu nedenle aynı desteği kullanın: libs genelinde destek-v4 ve uygulama projeniz.


Evet, bu bir olasılık. V4 destek kitaplığını ( github.com/JakeWharton/Android-ViewPagerIndicator/pull/271 ) güncellemek için açık bir çekme isteği var . Bu proje aktif olarak sürdürülüyor gibi görünmüyor ... :(
loeschg

Hey, ama ViewPagerInidicator android kitaplığıdır. Maven kullanırlarsa, büyük olasılıkla apklib eseri ve yalnızca savaş eseri olan gradle çalışmaları olduğu anlamına gelir
Eugen Martynov

3

Cevap olarak işaretlenen gönderi benim için işe yaramadı ... Gradle "Bağlantı reddedildi" konusunda şikayet etti.

Bunca zaman sonra kararlı göründüğünü düşünürsek, aar dosyasını https://bintray.com/populov/maven/com.viewpagerindicator:library adresinden indiriyorum , libs klasörüme kopyaladım ve şu şekilde referans verdim:

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

Bu garip. Bu haftanın başlarında başka bir projeye eklemek için aynı yöntemi kullandım ve hala benim için iyi çalışıyor: /
Zac Sweers

1
@Aar sonekine artık gerek olmadığından, bu artık doğru bir tavsiye değildir.
John Hamelink

4
Benim için çalışmadı; var 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.
Sam

2

Bu benim için çalıştı:

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

yani, repo URL'sini kullanmayın.

sonra kullan:

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

Ayrıca maven deposunu diğerlerinden önce koymaya çalışın.

 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()
    }
}

Ve bağımlılıklar ile inşa edin:

  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

Çeşitlilik uğruna, burada maven kullanmayan bir cevap var:

  1. ViewPagerIndicator'dan zip / tgz dosyasını indirin

  2. Proje penceresinde proje navigasyonunu seçin.

  3. Proje> Yeni> Modül'e gidin.

  4. Gradle Projesini İçe Aktar

  5. Açılmış kitaplık klasörüne göz atın ve seçin. Modüle istediğiniz adı verin. Adını verdimviewPagerIndicator

  6. FinishTıklanabilir son pencereye ulaşana kadar ileriye tıklamaya devam edin . Android Support Library is not installedMesajı alırsanız endişelenmeyin. Sadece devam edin ve tıklayın Finish.

  7. Gradle derlemesinin ve proje derlemesinin bitmesini bekleyin. Tamamlandığında, bunu şuradaki {..} bağımlılıklara ekleyin build.gradle (Module:app):

     compile project(':viewPagerIndicator')

Kitaplık artık kullanımınıza hazır.


0

Lütfen önce bunu kontrol edin

Android Studio - BEKLENMEYEN ÜST DÜZEY İSTİSNA:

bu kontroller uygunsa aşağıda belirtiniz.

Modülünüzün bağımlılığı olarak support-v4'ü eklemenize gerek yoktur çünkü ViewPagerIndicator kitaplığı zaten bağımlılığı olarak support-v4'e sahiptir. Böylece, bunu kaldırmayı deneyebilir ve araç çubuğunda bulunan küçük sevimli gradle düğmesini kullanarak gradle ile senkronize edebilirsiniz -

görüntü açıklamasını buraya girin

Senkronizasyon sırasında herhangi bir hata alıyorsanız sorunuzu güncelleyin.

GÜNCELLENMİŞ :

Emin değilim, ancak gradle'a dayalı herhangi bir ViewPagerIndicator Kitaplığı bulamadığım bir sorun olabilir. JackWarton, actionbarsherlock'u gradle'da taşıdı, ancak ViewPagerIndicator hala maven kullanıyor.


Teşekkürler @ pyus13. Evet, bu senkronizasyon projesi düğmesi, yeni bir bağımlılık eklerken ilk adımım. Sorun bu değildi. Sorumu güncelledim.
loeschg

@loeschg Jackwarton'ın viewpagerindicator'ı gradle'a taşıdığını bulamadım. Sorun olabilir.
pyus13

0

ViewPagerIndicator kitaplığını, açıklandığı gibi doğrudan uygulamanıza dahil edebilirsiniz. burada

ViewPagerIndicator kitaplığını mevcut projenize bir "Mevcut Proje" olarak içe aktarmanıza olanak tanır.


0

Benim için de yukarıdaki çözümlerden herhangi biri işe yaramadı. Ama bu benim için çalıştı.

  1. Buradaki gerekli kitaplığı ekleyin Viewpagerindicator Kitaplığı

  2. Bunu uygulama modülünüzün build.gradle dosyasına ekleyin (deponuz olmayacak, sadece bağımlılıkların üzerine ekleyin.

repositories {
    flatDir{
        dirs 'libs'
    }
}

  1. bunu bağımlılıklarınıza ekleyin.

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


0

Özetlemek gerekirse: http://mvnrepository.com/ adresinde "ViewPagerIndicator" araması yapabilirsiniz , orijinal com.viewpagerindicator'ın kırmızı "Android Paketleri" işaretine sahip olmadığını öğreneceksiniz, bu nedenle Gradle ile kullanamazsınız. Kırmızı işaretli başka bir tane bulabilirsin, orijinali ile aynı sürüme sahip olduğundan emin ol. (yani bazıları orijinal pakete dayalı bir android paketi oluşturur)


0

Daha yeni bir notu var. Sadece aşağıdaki gibi bağımlılığı değiştirin.

implementation 'com.inkapplications.viewpageindicator:library:2.4.3'
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.