在Android Studio和Gradle中使用ViewPagerIndicator库
我正在尝试使用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的东西依赖性问题…?
我只是在maven中心推送一个版本,所以你只需要添加依赖:
compile 'fr.avianey.com.viewpagerindicator:library:2.4.1.1@aar'
并且像这样声明maven中央:
repositories { mavenCentral() }
希望它有帮助…
晚会有点迟,但在这里:
杰克·沃顿(Jake Wharton)还没有把它作为一个公开发行。 有一个组虽然已经通过他们的服务器可用,你可以在你的build.gradle中设置它:
声明你的插件后,把它添加到你的源代码仓库中:
repositories { maven { url "http://dl.bintray.com/populov/maven" } mavenCentral() }
这将源自他们的Maven回购,其中包含他们放在一起包装的AAR。 一旦完成,您可以简单地将此行添加到您的依赖关系,一旦您将您的项目与您的gradle文件同步,一切都应该工作。
确保Maven Repo列在mavenCentral()
条目的上方。 否则,它将首先查看maven的中央存储库并find错误的包。
Android Studio为项目生成两个build.gradle
文件,确保你把它放在正确的位置!
dependencies { // ... compile 'com.viewpagerindicator:library:2.4.1@aar' // ... }
我们在我们的应用程序中使用它,如果你想看到一个工作的例子:
https://github.com/pandanomic/SUREwalk_android/blob/master/surewalk/build.gradle
我在Android Studio 0.8.2中使用gradle 0.10。+,接受的答案对我来说并不适用。 这些是我为了让ABS在我的项目中工作而必须做的轻微改变:
在你的项目的顶层build.gradle
文件中,像下面这样在allprojects
configuration中添加maven仓库:
allprojects { repositories { maven { url "http://dl.bintray.com/populov/maven" } mavenCentral() } }
在模块的build.gradle
文件中添加不依赖的@aar
:
dependencies { // ... compile 'com.viewpagerindicator:library:2.4.1' // ... }
Jitpack.io 非常适合这种情况。
首先,添加以下存储库:
repositories { // ... maven { url "https://jitpack.io" } }
然后,只需添加指向GitHub仓库的依赖:
dependencies { compile 'com.github.JakeWharton:ViewPagerIndicator:2.4.1@aar' }
把它添加到你的应用程序模块的build.gradle文件中,如下所示:
dependencies { compile 'com.github.JakeWharton:ViewPagerIndicator:2.4.1' ... }
我无法设法导入任何答案的项目。 我正在使用Android Studio 0.8.6和gradle 1.12。
我想出的唯一解决scheme就是从以下位置下载.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') }
希望这可以帮助!
我按照这个做了诡计。 不需要导入库或什么都不需要。 只有两步和宾果,它完美的作品。
在build.gradle(Project:…)中:
allprojects { repositories { ... maven { url "https://jitpack.io" } } }
在build.gradle(Module:app)中:
dependencies { compile 'com.github.JakeWharton:ViewPagerIndicator:2.4.1' }
我正在使用Studio 0.8.6和Gradle 1.12
我的项目中的一个差异可能是我也在使用兼容性库,这使得gradle抱怨有两次support-v4
库。
所以我不得不像这样排除已经包含的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
文件。
所以我还在android
部分中添加了exclude 'AndroidManifest.xml'
,如下所示:
android { packagingOptions { exclude 'AndroidManifest.xml' }
然后它的工作。
请确保支持:support-v4在所有的库和应用程序中都是一样的,有时它会引起问题,所以在库和应用程序项目中使用相同的支持:support-v4。
标记为答案的post不适用于我… Gradle抱怨“拒绝连接”。
考虑到它看起来一直很稳定,我只需从https://bintray.com/populov/maven/com.viewpagerindicator:library下载aar文件,复制到我的libs文件夹中,然后像下面这样引用:;
dependencies { ... compile 'com.viewpagerindicator:library:2.4.1@aar' }
这对我来说是有效的:
repositories { jcenter() // maven { url "http://dl.bintray.com/populov/maven" } mavenCentral() }
即不要使用回购url。
然后使用:
dependencie { .... compile 'com.mcxiaoke.viewpagerindicator:library:2.4.1@aar' .... }
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' }
也尝试把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() } }
并build立与依赖关系:
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' }
为了多样化,这里是一个不使用maven的答案:
-
从ViewPagerIndicator下载zip / tgz
-
在项目窗口中,select项目导航。
-
转到项目>新build>模块。
-
导入Gradle项目
-
浏览并select解压缩的库文件夹。 将模块命名为任何你想要的。 我把它命名为
viewPagerIndicator
-
继续点击下一步,直到到达可点击
Finish
的最后一个窗口。 如果您获得Android Support Library is not installed
消息,请不要担心。 只要继续,然后单击Finish
。 -
等待gradle构build和项目编译完成。 一旦完成,将其添加到
build.gradle (Module:app)
依赖项{..}中:compile project(':viewPagerIndicator')
图书馆现在可供您使用。
请先检查一下
Android Studio – 意外的顶级例外:
如果这些检查确实如下所述。
无需将support-v4作为您的模块的依赖项,因为ViewPagerIndicator库已经具有support-v4作为其依赖项。 所以你可以尝试删除它,并使用工具栏中提供的小巧可爱的gradlebutton与gradle同步 –
如果您在同步时遇到任何错误,请更新您的问题。
更新 :
我不知道,但这可能是一个问题,我没有find任何基于Gradle的ViewPagerIndicator库。 JackWarton将gradle中的actionbarsherlock移除了,但ViewPagerIndicator仍然使用maven。
您可以直接在您的应用程序中包含ViewPagerIndicator库,如下所述
它使您能够将ViewPagerIndicator库作为“现有项目”导入到当前项目中。
对于我也是上述解决scheme没有工作。 但是这对我有效。
-
只需从这里Viewpagerindicator库包含所需的libabry
-
把它包含在你的应用程序模块的build.gradle中(你将不会有仓库,只是把它包含在依赖关系之上。
repositories { flatDir{ dirs 'libs' } }
总结一下:你可以在http://mvnrepository.com/中search“ViewPagerIndicator”,你会发现原来的com.viewpagerindicator没有红色标记“Android Packages”,所以你不能在Gradle中使用它。 你可以find另一个红色的标记,确保它与原来的版本相同。 (即有人创build一个基于原始的android包)