在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中出现问题...?

Answers:


199

我只是在Maven Central内部推送了一个版本,所以您只需要添加该依赖项即可:

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

然后像这样声明Maven Central:

repositories {
    mavenCentral()
}

希望能帮助到你...


4
谢谢。我不想将一些随机Maven存储库添加到我的构建脚本中。这样好多了。
格雷格·恩尼斯

我添加了上述依赖关系,但在gradle构建中无法解决。确切错误:Failed to resolve: fr.avianey.com.viewpagerindicator:library:2.4.1 为什么?
rockydgeekgod 2015年

您是否在右侧部分中添加了存储库...我的意思是不在插件存储库中...
avianey 2015年

dependency在单个模块build.gradle文件的部分中添加了它。在这里
rockydgeekgod

2
fr.avianey.com.viewpagerindicator:library:2.4.1@aar-您错过了@aar
Mark

147

派对晚了一点,但是在这里:

杰克·沃顿(Jake Wharton)尚未以Aar身份在行家中发布。虽然有一个小组可以通过他们的服务器使用它,但是您可以在build.gradle中进行如下设置:

在声明插件后,将其添加到源存储库中:

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

这将获取他们的Maven回购,其中包含打包在一起的打包好的Aar。一旦完成,您可以简单地将此行添加到依赖项中,并且当您将项目与gradle文件同步后,一切都将正常工作。

确保该mavenCentral()条目上方列出了Maven Repo 。否则,它将首先在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
谢谢!只是想说明一下,双托盘回购必须在mavenCentral()之上。:您可以阅读本blog.haunted-soft.com/2013/10/...
费兰Maylinch

5
这似乎不再工作-我遵循的步骤,当机器人工作室刷新这个项目我得到的“摇篮‘XYZ’项目刷新失败:神器‘com.viewpagerindicator:库:2.4.1:library.aar’。没有找到
卢克Sleeman 2014年

30
经过大量的摸索之后,我发现最新版本的android studio生成的项目带有两个gradle文件-一个位于app / build.gradle内,一个位于/build.gradel内-根目录中的一个可以在其中添加常见的配置选项所有子项目/模块。您需要将:allprojects {存储库{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 '16

26

将其添加到应用程序模块的build.gradle文件中的依赖项中,如下所示:

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

1
奇怪的是,这是正确的方法。由于它直接进入GitHub上的源项目,因此跳过了第3方网站。
user2408952

8

我遵循了这个技巧。无需导入库或什么也不需要。只需两个步骤,然后宾果游戏就可以完美运行。

在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目录中,如果该目录尚不存在,则应创建该目录。
2015年

4

我正在使用Studio 0.8.6和Gradle 1.12

我项目中的不同之处可能在于,我还使用了兼容性库,该库使gradle抱怨拥有support-v4两次lib。

所以我不得不排除已经包括在内的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 '16

3

请确保所有库和您的应用程序中的support:support-v4相同,有时会导致问题,因此请在库和您的应用程序项目中使用相同的support:support-v4。


是的,这是可能的。打开了一个拉取请求,以更新v4支持库(github.com/JakeWharton/Android-ViewPagerIndicator/pull/271)。看起来这个项目没有得到积极维护... :(
loeschg 2014年

嘿,但是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 2014年

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
2015年

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-超出预期的最高级别:

如果这些检查还可以,请执行以下提到的操作。

无需将support-v4作为模块的依赖项,因为ViewPagerIndicator库已经具有support-v4作为其依赖项。因此,您可以尝试删除它,并使用工具栏上的小巧可爱gradle按钮与gradle同步-

在此处输入图片说明

如果您在同步过程中遇到任何错误,请更新您的问题。

更新 :

我不确定,但是可能找不到基于gradle的ViewPagerIndicator库。JackWarton已将actionbarsherlock锁定在gradle中,但ViewPagerIndicator仍在使用maven。


谢谢,@ pyus13。是的,在添加新依赖项时,该同步项目按钮是我的第一步。那不是问题。我更新了我的问题。
loeschg 2014年

@loeschg我没有发现jackwarton已将viewpagerindicator移到gradle中。可能是个问题。
pyus13 2014年

0

您可以按照描述直接将ViewPagerIndicator库直接包含在应用程序中 在这里

它使您可以将ViewPagerIndicator库作为“现有项目”导入到当前项目。


0

对我来说,上述任何解决方案也没有用。但这对我有用。

  1. 只需从此处包括所需的librabry 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一起使用。您可以找到带有红色标记的其他版本,并确保其版本与原始版本相同。(即有人基于原始的一个创建一个Android包)


0

它有一个更新的问题。只需更改依赖项,如下所示。

implementation 'com.inkapplications.viewpageindicator:library:2.4.3'
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.