Gradle – невозможно импортировать viewpagerindicator в Android Studio, используя зависимость gradle

Итак, я пытаюсь использовать actionbarsherlock и viewpagerindicator, и по какой-то причине библиотека viewpagerindicator по какой-то причине не импортируется. У кого-нибудь есть идеи?

apply plugin: 'android'

android {
    compileSdkVersion 19
    buildToolsVersion "19.0.1"

    defaultConfig {
        minSdkVersion 9
        targetSdkVersion 19
        versionCode 1
        versionName "1.0"
    }
    buildTypes {
        release {
            runProguard false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
        }
    }
}

repositories {
    mavenCentral()
}

dependencies {
    compile 'com.actionbarsherlock:actionbarsherlock:4.4.0@aar'
    compile 'com.viewpagerindicator:library:2.4.0'
}

dependencies {
    compile project(':libraries:facebook')
}

Этот импорт выдает ошибку "Не удается разрешить символ viewpageindicator

import com.viewpagerindicator.TabPageIndicator;

Это мои "Задачи Messages gradle"

Execution failed for task ':app:processDebugResources'.
> com.android.ide.common.internal.LoggedErrorException: Failed to run command:
    C:\android-sdk\build-tools\19.0.1\aapt.exe package -f --no-crunch -I C:\android-sdk\platforms\android-19\android.jar -M C:\myAppName\app\build\manifests\debug\AndroidManifest.xml -S C:\myAppName\app\build\res\all\debug -A C:\myAppName\app\build\assets\debug -m -J C:\myAppName\app\build\source\r\debug -F C:\myAppName\app\build\libs\app-debug.ap_ --debug-mode --custom-package com.myAppName.app --output-text-symbols C:\myAppName\app\build\symbols\debug
Error Code:
    1
Output:
    C:\myAppName\app\build\res\all\debug\values\values.xml:911: error: Error: No resource found that matches the given name: attr 'vpiTabPageIndicatorStyle'.
    C:\myAppName\app\build\res\all\debug\values\values.xml:914: error: Error retrieving parent for item: No resource found that matches the given name 'Widget.TabPageIndicator'.
    C:\myAppName\app\build\res\all\debug\values\values.xml:934: error: Error: No resource found that matches the given name: attr 'fadeDelay'.
    C:\myAppName\app\build\res\all\debug\values\values.xml:933: error: Error: No resource found that matches the given name: attr 'fadeLength'.
    C:\myAppName\app\build\res\all\debug\values\values.xml:931: error: Error: No resource found that matches the given name: attr 'selectedColor'.


C:\myAppName\app\src\main\res\values\styles.xml
    No resource found that matches the given name: attr 'vpiTabPageIndicatorStyle'.
    Error retrieving parent for item: No resource found that matches the given name 'Widget.TabPageIndicator'.
    No resource found that matches the given name: attr 'fadeDelay'.
    No resource found that matches the given name: attr 'fadeLength'.
    No resource found that matches the given name: attr 'selectedColor'.

person Georgi Angelov    schedule 12.02.2014    source источник
comment
Какая версия Android Studio? Что вы подразумеваете под не импортируется?   -  person Scott Barta    schedule 12.02.2014
comment
@ScottBarta, я только что обновил свой вопрос, указав точные ошибки.   -  person Georgi Angelov    schedule 12.02.2014


Ответы (5)


Вы не можете импортировать ViewPagerIndicator через

compile 'com.viewpagerindicator:library:2.4.0'

потому что этот артефакт Maven — это просто банка библиотеки Java, но VPI полагается на ресурсы Android, которых нет в банке.

Артефакты Maven с упаковкой AAR имеют ресурсы и будут работать, но VPI не упаковывается таким образом. У него есть упаковка apklib, но плагин Android Gradle не поддерживает это.

Вам нужно будет загрузить исходный код и настроить его как модуль библиотеки Android.

Вы не указали, какую версию Android Studio вы используете, но я готов поспорить, что ваша проблема с неработающим импортом связана с тем, что вы используете что-то более раннее, чем 0.4.3; с тех пор в этой области были исправлены ошибки.

person Scott Barta    schedule 12.02.2014
comment
Спасибо за объяснение. Я не знал об этом. Поможет ли обновление до версии 0.4.3 импортировать библиотеку или мне все равно придется импортировать ее как библиотеку Java? - person Georgi Angelov; 12.02.2014
comment
Нет, вам все равно придется настроить VPI как модуль библиотеки Android в Gradle. 0.4.3 просто исправляет ошибки, из-за которых недавно добавленные зависимости по-прежнему не отображаются правильно для импорта и подсветки синтаксиса, даже если проект строится нормально. - person Scott Barta; 12.02.2014
comment
Спасибо. В итоге я добавил библиотеку не через зависимости, а через добавление ее в папку библиотеки. - person Georgi Angelov; 12.02.2014
comment
Я бы удивился, если бы это сработало. Он не поможет вам с ресурсами, в которых он нуждается. - person Scott Barta; 12.02.2014

Вы можете импортировать AAR, используя эту инструкцию:

В вашем build.gradle включите http://dl.bintray.com/populov/maven в качестве репозитория. до mavenCentral:

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

Используйте в своих зависимостях как обычно:

dependencies {
    compile 'com.viewpagerindicator:library:2.4.1@aar'
}
person Serge Populov    schedule 27.03.2014
comment
Я пытаюсь сделать это внутри другого подпроекта, который у меня есть в студии Android, но я получаю сообщение об ошибке. Стиль Widget.TabIndicator и т. д. не найден. Любая идея, что я могу делать неправильно? - person Rat-a-tat-a-tat Ratatouille; 08.03.2018

Просто чтобы добавить к ответу @serge, если у вас есть repositories, определенный в теге allprojects, вам также нужно будет добавить его туда.

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

я использую

compile 'com.mcxiaoke.viewpagerindicator:library:2.4.1@aar' 

Это работа для меня.

И обязательно повторно синхронизируйте gradle и перестройте проект.

person UmAnusorn    schedule 01.10.2015

Мой корень build.gradle:

// Top-level build file where you can add configuration options common to all sub-projects/modules.

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

    }
    dependencies {
        classpath 'com.android.tools.build:gradle:0.12.2'

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

    }
}

и зависимость: скомпилировать 'com.viewpagerindicator:library:2.4.1@aar'

Работает как бомба :-)

person Ashraf Sayied-Ahmad    schedule 05.11.2014
comment
я пробовал это.... это не дает никаких ошибок, но я не могу импортировать какие-либо классы. Что случилось? - person Muhammad Umar; 04.02.2015