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中央を宣言します:

repositories {
    mavenCentral()
}

それが役に立てば幸い...


4
ありがとうございました。ランダムなMavenリポジトリをビルドスクリプトに追加したくありませんでした。これははるかに良いです。
グレッグエニス2015年

上記の依存関係を追加しましたが、gradleビルドでそれを解決できません。正確なエラー:Failed to resolve: fr.avianey.com.viewpagerindicator:library:2.4.1 理由は何ですか?
rockydgeekgod

右のセクションにリポジトリを追加しましたか...プラグインリポジトリではありません...
avianey

dependency個別のモジュールbuild.gradleファイルのセクションに追加しました。ここ
rockydgeekgod

2
fr.avianey.com.viewpagerindicator:library:2.4.1@aar-@aarが欠落しています
Mark

147

パーティーには少し遅れましたが、こちら:

Jake Whartonは、mavenでそれをaarとしてリリースしていません。サーバーを通じてaarを使用可能にしたグループがありますが、build.gradleで次のように設定できます。

プラグインを宣言した後、これをソースリポジトリに追加します。

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

これにより、Mavenリポジトリが提供されます。このリポジトリには、パッケージ化されたaarが含まれています。それが終わったら、この行を依存関係に追加するだけで、プロジェクトをGradleファイルと同期するとすべてが機能するはずです。

Maven RepoがmavenCentral()エントリーの上にリストされていることを確認してください。それ以外の場合は、最初にmavenの中央リポジトリーを調べて、間違ったパッケージを見つけます。

Android Studio build.gradleはプロジェクト用に2つのファイルを生成します。これを正しいファイルに配置してください。

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

実際の例を見たい場合は、アプリで使用します。

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


5
ありがとう!bintrayリポジトリはmavenCentral()の上にある必要があることを指摘したかっただけです。あなたはこれを読むことができます。blog.haunted-soft.com/2013/10/...
フェランMaylinch

5
アーティファクト『com.viewpagerindicator:ライブラリ:2.4.1:library.aarは、』私はステップに続き、ときアンドロイドスタジオのリフレッシュは、私が「Gradleの『XYZ』プロジェクトのリフレッシュを取得し、プロジェクトが失敗した-これはもう動いていないようにみえます。見つからない
ルークスリーマン

30
たくさんいじった後、私は最近のバージョンのandroid studioが2つのGradleファイル(1つはapp / build.gradleにあり、もう1つは/build.gradelにある)でプロジェクトを作成していることを発見しました-ルートディレクトリにあるものは、共通の構成オプションを追加できる場所ですすべてのサブプロジェクト/モジュールに。次のように配置する必要があります:allprojects {repositories {maven {url " dl.bintray.com/populov/maven "} mavenCentral()}}を機能させるには、トップレベルのbuild.gradleに
Luke Sleeman

67
今注目は依存関係がコンパイルされている 'com.viewpagerindicator:library:2.4.1' [参照:] mvnrepository.com/artifact/com.viewpagerindicator/library/2.4.1
Ricardo Pessoa

4
@OlegVaskevichあなたは間違ったライブラリをコンパイルしようとしています。上記の回答で指定されたbintrayリポジトリでaarを使用する必要があります。このスレッドには、私の回答を不適切に編集した人々の助けを得られないかなりの量の誤った情報があります。
Zac Sweers 2014

56

Android Studio 0.8.2でgradle 0.10。+を使用していますが、承認された回答が機能しませんでした。以下は、プロジェクトでABSを機能させるために必要なわずかな変更です。

build.gradleプロジェクトの最上位ファイルで、次のように構成にmavenリポジトリを追加しますallprojects

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/…
ムハンマド

@Juan Andres-私がGradleだけを取っても大丈夫ですか?
RoCk RoCk

26

これを、次のようにアプリモジュールのbuild.gradleファイルの依存関係に追加します。

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

1
これは正しい方法です。GitHubのソースプロジェクトに直接移動するため、サードパーティのサイトはスキップされます。
user2408952 2017年

8

私はこれに従ってトリックをしました。ライブラリをインポートする必要はありません。ちょうど2つのステップとビンゴ、それは完全に動作します。

build.gradle(Project:...)で:

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ディレクトリに配置する必要があります。まだ存在しない場合は作成する必要があります。
サム、

4

Studio 0.8.6とGradle 1.12を使用しています

私のプロジェクトの違いは、gradleが support-v4 libを2回でした。

だから私はすでに含まれて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ファイルが2回あるました。

だから私はこのようなセクションにも追加しexclude 'AndroidManifest.xml'ましたandroid

android {
    packagingOptions {
        exclude 'AndroidManifest.xml'
    }

その後、うまくいきました。


機能していません:依存関係のエラー:パッケージングcom.viewpagerindicator:library:2.4.1は「apklib」であり、サポートされていません。「aar」ライブラリのみがサポートされています。
Govinda Paliwal 16

3

すべてのライブラリとアプリケーションでsupport:support-v4が同じであることを確認してください。問題が発生する場合があるため、ライブラリとアプリプロジェクト全体で同じsupport:support-v4を使用してください。


ええ、これは可能性です。v4サポートライブラリを更新するためのプルリクエストが開かれています(github.com/JakeWharton/Android-ViewPagerIndicator/pull/271)。このプロジェクトが積極的に維持されているようには見えません... :(
loeschg

ちょっと、でもViewPagerInidicatorはAndroidライブラリです。つまり、彼らがmavenを使用している場合、それはおそらくapklibアーティファクトであり、gradleは戦争アーティファクトでのみ機能します
Eugen Martynov

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年

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

また、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ジャックウォートンがviewpagerindicatorをgradleに移動したことはわかりませんでした。それは問題かもしれません。
pyus13 14年

0

ここで説明するように、アプリケーション内に直接ViewPagerIndicatorライブラリを含めることができます。

これにより、ViewPagerIndicatorライブラリを「既存のプロジェクト」として現在のプロジェクトにインポートできます。


0

私にとっても、上記の解決策はどれもうまくいきませんでした。しかし、これでうまくいきました。

  1. ここから必要なライブラリを含めるだけですViewpagerindicator Library

  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で使用できません。赤いマーカーで別のバージョンを見つけることができます。元のバージョンと同じバージョンであることを確認してください。(つまり、誰かが元のパッケージに基づいてandroidパッケージを作成します)


0

新しいgradleの問題があります。以下のように依存関係を変更するだけです。

implementation 'com.inkapplications.viewpageindicator:library:2.4.3'
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.