Android Studio 및 Gradle에서 ViewPagerIndicator 라이브러리 사용


118

Jake Wharton의 ViewPagerIndicator 라이브러리 를 사용하려고하는데 Android Studio의 Gradle 프로젝트에서 작동하지 않습니다.

다음과 같이 종속성으로 추가합니다.

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

그러나 프로젝트는 라이브러리의 구성 요소를 인식하지 못하는 것 같습니다. 다른 support-v4 버전 또는 nineoldandroids에서 종속성 문제가 있는지 궁금합니다 ...?

답변:


199

방금 maven central 내부에 버전을 푸시 했으므로 해당 종속성 만 추가하면됩니다.

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

그리고 다음과 같이 maven central을 선언하십시오.

repositories {
    mavenCentral()
}

도움이 되길 바랍니다 ...


4
감사합니다. 내 빌드 스크립트에 임의의 Maven 저장소를 추가하고 싶지 않았습니다. 훨씬 낫다.
Greg Ennis 2015 년

앞서 언급 한 종속성을 추가했지만 gradle 빌드에서 해결하지 못했습니다. 정확한 오류 : Failed to resolve: fr.avianey.com.viewpagerindicator:library:2.4.1 이유가 무엇입니까?
rockydgeekgod 2015-06-07

당신은 ... 나는 플러그인 저장소에없는 말은 ... 올바른 섹션에있는 저장소를 추가했다
avianey

dependency개별 모듈 build.gradle파일 의 섹션에 추가했습니다 . 여기에
rockydgeekgod

2
fr.avianey.com.viewpagerindicator : library : 2.4.1@aar-@aar가 누락되었습니다
Mark

147

파티에 조금 늦었지만 여기 :

Jake Wharton은 maven에서 aar로 출시하지 않았습니다. 서버를 통해 사용할 수 있도록 만든 그룹이 있지만 build.gradle에서 다음과 같이 설정할 수 있습니다.

플러그인을 선언 한 후 소스 저장소에 다음을 추가하십시오.

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

이것은 그들이 함께 모은 패키지 aar를 포함하는 그들의 maven repo를 소싱합니다. 완료되면이 줄을 종속성에 추가하기 만하면 프로젝트를 gradle 파일과 동기화하면 모든 것이 작동합니다.

Maven Repo가 항목 위에 나열되어 있는지 확인합니다 mavenCentral(). 그렇지 않으면 먼저 maven의 중앙 저장소에서 잘못된 패키지를 찾습니다.

Android Studio는 build.gradle프로젝트에 대해 두 개의 파일을 생성 합니다. 올바른 파일에 넣어야합니다!

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

실제 예제를 보려면 앱에서 사용합니다.

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


5
감사! bintray repo가 ​​mavenCentral () 위에 있어야한다는 점을 언급하고 싶었습니다. 당신이 읽을 수 : blog.haunted-soft.com/2013/10/...
페란 Maylinch

5
이것은 더 이상 작동에 보인다 - 안드로이드 스튜디오가 새로 고쳐 나가 "얻을 프로젝트가 Gradle을 'XYZ'프로젝트 새로 고침이 실패했을 때 내가 단계를 다음과 : 아티팩트 'com.viewpagerindicator : 라이브러리 : 2.4.1 : library.aar'. 찾을 수 없습니다
누가 복음을 Sleeman

30
많은 엉망진창 후에 나는 두 개의 gradle 파일이있는 최신 버전의 android studio 생성 프로젝트를 발견했습니다. 하나는 app / build.gradle에 있고 다른 하나는 /build.gradel에 있습니다. 루트 디렉토리에있는 하나는 구성 옵션을 추가 할 수 있습니다. 공통 모든 하위 프로젝트 / 모듈에. allprojects {저장소 {받는다는 {URL ": 당신은 둘 필요가 dl.bintray.com/populov/maven "} mavenCentral을 ()}} 상위 레벨 build.gradle에 대한 작업에
누가 복음 Sleeman

67
이제 종속성은 컴파일 'com.viewpagerindicator : library : 2.4.1'입니다. [참조 :] mvnrepository.com/artifact/com.viewpagerindicator/library/2.4.1
Ricardo Pessoa

4
@OlegVaskevich 잘못된 라이브러리를 컴파일하려고합니다. 위의 답변에 지정된 bintray repo에서 aar를 사용해야합니다. 이 스레드에는 내 대답을 잘못 편집하는 사람들의 도움을받지 못하는 많은 잘못된 정보가 있습니다.
Zac Sweers

56

Android Studio 0.8.2에서 gradle 0.10. +를 사용하고 있으며 허용되는 답변이 저에게 효과적이지 않았습니다. 프로젝트에서 ABS를 사용하기 위해 수행해야하는 약간의 변경 사항은 다음과 같습니다.

build.gradle프로젝트의 최상위 파일에서 다음 allprojects과 같이 구성에 maven 저장소를 추가하십시오 .

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

그리고 모듈의 build.gradle파일에서 @aar다음 없이 종속성을 추가하십시오 .

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

또한 다른 곳에서 지원 라이브러리를 사용하고 종속성에 추가 한 경우 viewpager가 자체 버전의 지원 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/… .
Muhammad

@Juan Andres-gradle 만 가져가도 괜찮습니까?
RoCk RoCk

26

다음과 같이 앱 모듈의 build.gradle 파일에있는 종속성에이를 추가합니다.

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

1
Idd 이것이 올바른 방법입니다. GitHub의 소스 프로젝트로 직접 이동하므로 타사 사이트를 건너 뜁니다.
user2408952

8

나는 이것을 따라 트릭을했다. 라이브러리 또는 아무것도 가져올 필요가 없습니다. 두 단계 만 거치면 빙고가 완벽하게 작동합니다.

build.gradle (프로젝트 : ...) :

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

build.gradle (Module : app)에서 :

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

5

나는 어떤 답변으로도 프로젝트를 가져올 수 없었습니다. Android Studio 0.8.6 및 gradle 1.12를 사용하고 있습니다.

내가 생각 해낸 유일한 해결책은 다음에서 .aar 라이브러리를 다운로드하는 것입니다.

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

다음과 같이 gradle에서 라이브러리를 가져옵니다.

 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디렉토리에 넣어야 합니다. 아직 존재하지 않는 경우 만들어야합니다.
Sam

4

Studio 0.8.6 및 Gradle 1.12를 사용하고 있습니다.

내 프로젝트의 차이점은 gradle이 support-v4lib를 두 번 사용하는 것에 대해 불평하게 만든 호환성 라이브러리를 사용하고 있다는 것 입니다.

그래서 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 : library : 2.4.1에 대한 오류 : 패키징은 'apklib'이며 지원되지 않습니다. 'aar'라이브러리 만 지원됩니다.
Govinda Paliwal

3

support : support-v4가 모든 libs 및 귀하의 응용 프로그램에서 동일한 지 확인하십시오. 때때로 문제가 발생하므로 libs 및 귀하의 앱 프로젝트에서 동일한 support : support-v4를 사용하십시오.


네, 가능성이 있습니다. v4 지원 라이브러리 ( github.com/JakeWharton/Android-ViewPagerIndicator/pull/271 ) 를 업데이트하기위한 pull 요청이 열려 있습니다. 이 프로젝트가 활발하게 유지되고있는 것 같지 않습니다 ... :(
loeschg

하지만 ViewPagerInidicator는 안드로이드 라이브러리입니다. 그들이 받는다는 사용하는 경우 그 다음은 apklib 유물 만 전쟁 유물과 Gradle을 작품 아마 의미
오이겐 마르티노

3

답변으로 표시된 게시물이 작동하지 않았습니다 ... Gradle이 "연결이 거부되었습니다"라고 불평했습니다.

이 모든 시간이 지나도 안정된 것처럼 보이기 때문에 https://bintray.com/populov/maven/com.viewpagerindicator:library 에서 aar 파일을 다운로드하고 libs 폴더에 복사하여 다음과 같이 참조했습니다.

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

이상하다. 이번 주 초에 다른 프로젝트에 추가하는 데 동일한 방법을 사용했지만 여전히 잘 작동합니다. /
Zac Sweers

1
@aar 접미사가 더 이상 필요하지 않기 때문에 이것은 더 이상 올바른 조언이 아닙니다.
John Hamelink 2014-06-14

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.
Sam

2

이것은 나를 위해 일한 것입니다.

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

즉, repo 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

또한 다른 사람보다 먼저 maven 저장소를 두십시오.

 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

다양성을 위해 여기에 maven을 사용하지 않는 답변이 있습니다.

  1. ViewPagerIndicator 에서 zip / tgz 다운로드

  2. 프로젝트 창에서 프로젝트 탐색을 선택합니다.

  3. 프로젝트> 새로 만들기> 모듈로 이동합니다.

  4. Gradle 프로젝트 가져 오기

  5. 압축이 풀린 라이브러리 폴더를 찾아 선택합니다. 원하는대로 모듈 이름을 지정합니다. 나는 그것을 명명했다viewPagerIndicator

  6. 클릭 할 수있는 마지막 창에 도달 할 때까지 계속 다음을 Finish클릭합니다. Android Support Library is not installed메시지를 받으면 걱정하지 마십시오. 계속해서을 클릭하십시오 Finish.

  7. gradle 빌드 및 프로젝트 컴파일이 완료 될 때까지 기다립니다. 완료되면 다음의 종속성 {..}에 추가하십시오 build.gradle (Module:app).

     compile project(':viewPagerIndicator')

이제 라이브러리를 사용할 수 있습니다.


0

먼저 확인하세요

Android Studio-예상치 못한 최상위 예외 :

이 검사가 괜찮다면 아래에 언급하십시오.

ViewPagerIndicator 라이브러리에는 이미 support-v4가 종속성으로 있으므로 support-v4를 모듈의 종속성으로 포함 할 필요가 없습니다. 그래서 당신은 그것을 제거하고 툴바에서 사용 가능한 작은 사랑스러운 gradle 버튼을 사용하여 gradle과 동기화하려고 할 수 있습니다-

여기에 이미지 설명 입력

동기화 중에 오류가 발생하면 질문을 업데이트하십시오.

업데이트 :

확실하지는 않지만 gradle을 기반으로하는 ViewPagerIndicator 라이브러리를 찾지 못한 것이 문제 일 수 있습니다. JackWarton은 gradle에서 actionbarsherlock을 이동했지만 ViewPagerIndicator는 여전히 maven을 사용합니다.


감사합니다, @ pyus13. 예, 프로젝트 동기화 버튼은 새 종속성을 추가 할 때의 첫 번째 단계입니다. 그것은 문제가 아니 었습니다. 내 질문을 업데이트했습니다.
loeschg 2014 년

@loeschg 나는 jackwarton이 gradle에서 viewpagerindicator를 옮겼다는 것을 찾지 못했습니다. 문제 일 수 있습니다.
pyus13

0

여기에 설명 된대로 애플리케이션 내에 ViewPagerIndicator 라이브러리를 직접 포함 할 수 있습니다.

ViewPagerIndicator 라이브러리를 "기존 프로젝트"로 현재 프로젝트에 가져올 수 있습니다.


0

나에게도 위의 솔루션 중 어느 것도 작동하지 않았습니다. 그러나 이것은 나를 위해 일했습니다.

  1. 여기 Viewpagerindicator 라이브러리 에서 필요한 라이브러리 를 포함하십시오.

  2. 이를 앱 모듈의 build.gradle에 포함합니다 (저장소가 없을 것입니다. 종속성 위에 포함하기 만하면됩니다.

repositories {
    flatDir{
        dirs 'libs'
    }
}

  1. 이것을 의존성에 추가하십시오.

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


0

요약하자면 http://mvnrepository.com/ 에서 "ViewPagerIndicator"를 검색 하면 원래 com.viewpagerindicator에 빨간색 마커 "Android Packages"가 없으므로 Gradle과 함께 사용할 수 없습니다. 빨간색 마커가있는 다른 것을 찾을 수 있습니다. 원래 버전과 동일한 버전인지 확인하세요. (즉, 일부는 원본을 기반으로 안드로이드 패키지를 생성합니다)


0

새로운 gradle의 문제가 있습니다. 아래와 같이 종속성을 변경하십시오.

implementation 'com.inkapplications.viewpageindicator:library:2.4.3'
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.