Menggunakan pustaka ViewPagerIndicator dengan Android Studio dan Gradle


118

Saya mencoba menggunakan pustaka ViewPagerIndicator Jake Wharton , tetapi saya tidak bisa membuatnya bekerja dengan proyek Gradle saya di Android Studio.

Saya menambahkannya sebagai ketergantungan seperti:

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

tetapi proyek tersebut tampaknya tidak mengenali komponen apa pun di perpustakaan. Saya ingin tahu apakah ada masalah ketergantungan dengan versi dukungan-v4 yang berbeda atau sesuatu di sembilanoldandroids ...?

Jawaban:


199

Saya baru saja mendorong versi di dalam maven central sehingga Anda hanya perlu menambahkan ketergantungan itu:

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

Dan nyatakan maven sentral seperti ini:

repositories {
    mavenCentral()
}

Semoga membantu ...


4
Terima kasih. Saya tidak ingin menambahkan beberapa repositori maven acak ke skrip build saya. Ini jauh lebih baik.
Greg Ennis

Saya menambahkan ketergantungan tersebut tetapi gagal menyelesaikannya pada build gradle. Kesalahan persis: Failed to resolve: fr.avianey.com.viewpagerindicator:library:2.4.1 Ada alasan mengapa?
rockydgeekgod

apakah Anda menambahkan repositori di bagian kanan ... Maksud saya tidak di repositori plugin ...
avianey

Saya menambahkannya di dependencybagian dalam build.gradlefile modul individu . Di sini
rockydgeekgod

2
fr.avianey.com.viewpagerindikator: perpustakaan: 2.4.1@aar - Anda melewatkan @aar
Tandai

147

Agak terlambat ke pesta, tapi di sini:

Jake Wharton belum merilisnya di maven sebagai aar. Ada grup meskipun yang telah membuat aar tersedia melalui server mereka, Anda dapat mengaturnya seperti ini di build.gradle Anda:

Tambahkan ini ke repositori sumber Anda setelah Anda mendeklarasikan plugin Anda:

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

Ini akan mengambil repo maven mereka, yang berisi paket aar yang mereka kumpulkan. Setelah selesai, Anda cukup menambahkan baris ini ke dependensi Anda dan semuanya akan berfungsi setelah Anda menyinkronkan proyek dengan file gradle Anda.

Pastikan bahwa Repo Maven terdaftar di atas mavenCentral()entri. Jika tidak, pertama-tama akan mencari di repositori pusat maven dan menemukan paket yang salah.

Android Studio menghasilkan dua build.gradlefile untuk proyek, pastikan Anda meletakkan ini di file yang benar!

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

Kami menggunakannya di aplikasi kami jika Anda ingin melihat contoh yang berfungsi:

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


5
Terima kasih! Hanya ingin memberi tahu bahwa repo bintray harus di atas mavenCentral (). Anda dapat membaca ini: blog.haunted-soft.com/2013/10/…
Ferran Maylinch

5
Ini sepertinya tidak lagi berfungsi - Saya mengikuti langkah-langkah dan ketika studio android menyegarkan proyek, saya mendapatkan penyegaran proyek "Gradle 'XYZ' gagal: Artifact 'com.viewpagerindicator: library: 2.4.1: library.aar' tidak ditemukan.
Luke Sleeman

30
Setelah banyak menyia-nyiakan, saya telah menemukan versi terbaru dari studio android menghasilkan proyek dengan dua file gradle - satu di dalam di app / build.gradle dan satu di /build.gradel - yang ada di direktori root adalah tempat Anda dapat menambahkan opsi konfigurasi umum untuk semua subproyek / modul. Anda harus meletakkan: allprojects {repositories {maven {url " dl.bintray.com/populov/maven "} mavenCentral ()}} di level teratas build.gradle agar berfungsi
Luke Sleeman

67
Perhatian sekarang ketergantungannya adalah kompilasi 'com.viewpagerindicator: library: 2.4.1' [referensi:] mvnrepository.com/artifact/com.viewpagerindicator/library/2.4.1
Ricardo Pessoa

4
@OlegVaskevich Anda mencoba mengkompilasi pustaka yang salah. Anda perlu menggunakan aar dalam repo bintray yang ditentukan dalam jawaban di atas. Ada cukup banyak informasi yang salah di utas ini yang tidak tertolong oleh orang-orang yang melakukan pengeditan buruk pada jawaban saya.
Zac Sweers

56

Saya menggunakan gradle 0.10. + Dengan Android Studio 0.8.2 dan jawaban yang diterima tidak berhasil untuk saya. Ini adalah sedikit perubahan yang harus saya lakukan agar ABS berfungsi di proyek saya:

Di build.gradlefile tingkat atas proyek Anda, tambahkan repositori maven di allprojectskonfigurasi seperti ini:

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

Dan di file modul build.gradletambahkan dependensi tanpa @aar:

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

Perhatikan juga jika Anda menggunakan pustaka dukungan di tempat lain dan telah menambahkannya ke dependensi Anda, Anda mungkin mendapatkan kesalahan aneh karena viewpager juga membawa versi dukungan v4-nya sendiri. lihat tautan ini - stackoverflow.com/questions/20989317/…
trippedout

49

Jitpack.io sangat bagus untuk situasi ini.

Pertama, tambahkan repositori berikut:

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

Kemudian, tambahkan saja dependensi yang menunjuk ke repo GitHub:

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

Selamat hari terima kasih :) Saya akan memposting jawaban Anda di tempat lain stackoverflow.com/questions/25702884/… .
Muhammad

@Juan Andres - Bolehkah jika saya hanya mengambil gradle?
RoCk RoCk

26

Tambahkan ini ke dependensi Anda dalam file build.gradle modul aplikasi Anda seperti:

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

1
Idd ini adalah cara yang benar untuk melakukannya. Karena langsung masuk ke proyek sumber di GitHub, melewati situs pihak ke-3.
pengguna2408952

8

Saya melakukan trik dengan mengikuti ini. Tidak perlu mengimpor perpustakaan atau tidak sama sekali. Hanya dua langkah dan bingo, ini bekerja dengan sempurna.

Dalam build.gradle (Proyek: ...):

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

Dalam build.gradle (Module: app):

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

5

Saya tidak dapat mengimpor proyek dengan salah satu jawaban. Saya menggunakan Android Studio 0.8.6 dan gradle 1.12.

Satu-satunya solusi yang saya dapatkan adalah mengunduh pustaka .aar dari:

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

lalu impor perpustakaan dalam gradle seperti ini:

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

Semoga ini membantu!


2
Hanya untuk memperjelas, library-2.4.1.aarperlu dimasukkan ke libsdirektori modul Anda , yang harus Anda buat jika belum ada.
Sam

4

Saya menggunakan Studio 0.8.6 dan Gradle 1.12

Perbedaan dalam proyek saya mungkin adalah bahwa saya juga menggunakan perpustakaan kompatibilitas yang membuat gradle mengeluh karena memiliki support-v4lib dua kali.

Jadi saya harus mengecualikan yang sudah termasuk support-v4seperti ini:

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

Kemudian juga mengeluh karena memiliki AndroidManifest.xmlfile dua kali.

Jadi saya juga menambahkan exclude 'AndroidManifest.xml'di androidbagian seperti ini:

android {
    packagingOptions {
        exclude 'AndroidManifest.xml'
    }

Kemudian berhasil.


tidak berfungsi: Kesalahan: Pengemasan untuk ketergantungan com.viewpagerindicator: library: 2.4.1 adalah 'apklib' dan tidak didukung. Hanya pustaka 'aar' yang didukung.
Govinda Paliwal

3

pastikan bahwa support: support-v4 sama di semua libs dan aplikasi Anda, terkadang hal itu menyebabkan masalah jadi gunakan dukungan yang sama: support-v4 di seluruh libs dan proyek aplikasi Anda.


Ya, ini kemungkinan. Ada permintaan tarik terbuka untuk memperbarui pustaka dukungan v4 ( github.com/JakeWharton/Android-ViewPagerIndicator/pull/271 ). Sepertinya proyek ini sedang dipertahankan secara aktif ... :(
loeschg

Hei, tapi ViewPagerInidicator adalah pustaka android. Artinya jika mereka menggunakan maven maka kemungkinan besar itu adalah artefak apklib dan gradle hanya bekerja dengan artefak perang
Eugen Martynov

3

Posting yang ditandai sebagai jawaban tidak berhasil untuk saya ... Gradle mengeluh tentang "Sambungan ditolak".

Mengingat sepertinya stabil setelah sekian lama, saya hanya mengunduh file aar dari https://bintray.com/populov/maven/com.viewpagerindicator:library , menyalin ke folder libs saya, dan mereferensikannya seperti ini:

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

Itu aneh. Saya baru saja menggunakan metode yang sama untuk menambahkannya ke proyek lain awal minggu ini dan masih berfungsi dengan baik untuk saya: /
Zac Sweers

1
Ini bukan lagi saran yang benar, karena akhiran @aar tidak lagi diperlukan.
John Hamelink

4
Tidak berhasil untuk saya; dapat 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

Inilah yang berhasil untuk saya:

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

yaitu, jangan gunakan URL repo.

lalu gunakan:

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

Juga coba letakkan repositori maven sebelum yang lain.

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

Dan membangun dengan dependensi:

  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

Demi variasi berikut adalah jawaban yang tidak menggunakan maven:

  1. Unduh zip / tgz dari ViewPagerIndicator

  2. Di jendela proyek, pilih navigasi proyek.

  3. Buka proyek> Baru> Modul.

  4. Impor Proyek Gradle

  5. Jelajahi dan pilih folder perpustakaan yang telah dibuka zipnya. Beri nama modul apa pun yang Anda inginkan. Saya menamakannyaviewPagerIndicator

  6. Terus klik berikutnya hingga Anda mencapai jendela terakhir Finishyang dapat diklik. Jika Anda mendapatkan Android Support Library is not installedpesan tersebut, jangan khawatir. Lanjutkan saja dan klik Finish.

  7. Tunggu build gradle dan kompilasi proyek selesai. Setelah selesai, tambahkan ini ke dependensi {..} di build.gradle (Module:app):

     compile project(':viewPagerIndicator')

Perpustakaan sekarang tersedia untuk Anda gunakan.


0

Silakan periksa ini dulu

Android Studio - PENGECUALIAN TINGKAT TERTINGGI TAK TERDUGA:

jika pemeriksaan ini ok lakukan disebutkan di bawah.

Tidak perlu menyertakan support-v4 sebagai dependensi modul Anda karena library ViewPagerIndicator sudah memiliki support-v4 sebagai dependensinya. Jadi Anda dapat mencoba untuk menghapusnya dan melakukan sinkronisasi dengan gradle menggunakan tombol gradle kecil yang indah yang tersedia di toolbar -

masukkan deskripsi gambar di sini

Perbarui pertanyaan Anda jika Anda mendapatkan kesalahan dalam menyinkronkan.

DIPERBARUI:

Saya tidak yakin tetapi mungkin ada masalah. Saya tidak menemukan Perpustakaan ViewPagerIndicator berdasarkan gradle. JackWarton telah memindahkan bilah tindakan dalam gradle tetapi ViewPagerIndicator masih menggunakan maven.


Terima kasih, @ pyus13. Ya, tombol proyek sinkronisasi itu adalah langkah pertama saya saat menambahkan ketergantungan baru. Bukan itu masalahnya. Saya memperbarui pertanyaan saya.
loeschg

@loeschg saya tidak menemukan bahwa jackwarton telah memindahkan indikator tampilan dalam gradle. Ini mungkin masalah.
pyus13

0

Anda cukup menyertakan pustaka ViewPagerIndicator langsung dalam aplikasi Anda seperti yang dijelaskan di sini

Ini memungkinkan Anda untuk mengimpor pustaka ViewPagerIndicator sebagai "Proyek yang Ada" untuk proyek Anda saat ini.


0

Bagi saya juga salah satu solusi di atas tidak berhasil. Tapi ini berhasil untuk saya.

  1. Cukup sertakan perpustakaan yang diperlukan dari sini Perpustakaan Viewpagerindicator

  2. Sertakan ini dalam build.gradle modul aplikasi Anda (Anda tidak akan memiliki repositori di sana, cukup sertakan di atas dependensi.

repositories {
    flatDir{
        dirs 'libs'
    }
}

  1. tambahkan ini ke dalam dependensi Anda.

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


0

Singkatnya: Anda dapat mencari "ViewPagerIndicator" di http://mvnrepository.com/ , Anda akan mengetahui bahwa com.viewpagerindicator asli tidak memiliki penanda merah "Paket Android", jadi Anda tidak dapat menggunakannya dengan Gradle. Anda dapat menemukan yang lain dengan spidol merah, pastikan versi yang sama dengan yang asli. (yaitu seseorang membuat paket android berdasarkan yang asli)


0

Ini memiliki masalah gradle yang lebih baru. Ubah saja ketergantungan seperti di bawah ini.

implementation 'com.inkapplications.viewpageindicator:library:2.4.3'
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.