2015-09-04 3 views
2

Это мой build.gradle файл:Как правильно добавить библиотеку appcompat в проект Android?

buildscript { 
    repositories { 
     mavenCentral() 

     // Configuration for Fabric 
     jcenter() 
    maven { url 'https://maven.fabric.io/public' } 
    } 

    dependencies { 
     classpath 'com.android.tools.build:gradle:1.2.3' 
     classpath 'io.fabric.tools:gradle:1.+' 
    } 
} 

apply plugin: 'com.android.application' 
apply plugin: 'io.fabric' 

dependencies { 
    // 'jar' files in '/libs' folder 
    compile fileTree(dir: 'libs', include: '*.jar') 

    compile 'com.facebook.android:facebook-android-sdk:4.1.0' 
    compile 'com.google.android.gms:play-services-gcm:7.8.0' 

    // Fabric 
    compile('com.crashlytics.sdk.android:crashlytics:[email protected]') { 
     transitive = true; 
    } 
} 

repositories { 
    mavenCentral() 

    // Configuration for Fabric 
    jcenter() 
    maven { url 'https://maven.fabric.io/public' } 
} 

android { 
    compileSdkVersion 15 
    buildToolsVersion 22 

    // Define current date and time now to have the same all along the build 
    def currentDate = getCurrentDate() 
def currentDateAndTime = getCurrentDateAndTime() 

    sourceSets { 
     main { 
      manifest.srcFile 'AndroidManifest.xml' 
      java.srcDirs = ['src'] 
      res.srcDirs = ['res'] 
      assets.srcDirs = ['assets'] 
      jniLibs.srcDirs = ['libs'] 
     } 
    } 

    defaultConfig { 
     versionCode 2.7 
     versionName name 
     minSdkVersion 15 
     targetSdkVersion 22 
    } 

    productFlavors { 
     x86 { 
      flavorDimension "abi" 
      ndk { 
       abiFilter "x86" 
      } 
     } 
     arm { 
      flavorDimension "abi" 
      ndk { 
       abiFilter "armeabi-v7a" 
      } 
     } 
    } 


    buildTypes { 
     // Configuration for release candidates 
     release { 

      // Proguard configuration 
      minifyEnabled true 
      proguardFile 'procfg.pro' 

     } 


    lintOptions { 
     abortOnError false 
    } 
} 

После добавления зависимость к AppCompat:

.... 
dependencies { 
    // new dependency added 
    compile 'com.android.support:appcompat-v7:22.0.0' 
    // 'jar' files in '/libs' folder 
    compile fileTree(dir: 'libs', include: '*.jar') 

    compile 'com.facebook.android:facebook-android-sdk:4.1.0' 
    compile 'com.google.android.gms:play-services-gcm:7.8.0' 

    // Fabric 
    compile('com.crashlytics.sdk.android:crashlytics:[email protected]') { 
     transitive = true; 
    } 
} 
.... 

Я получаю следующие ошибки:

AGPBI: {"kind":"ERROR","text":"Attribute \"textAllCaps\" has already been defined","sourcePath":"<dir>/colors.xml","position":{"startLine":1},"original":""} 
AGPBI: {"kind":"ERROR","text":"Attribute \"track\" has already been defined","sourcePath":"<dir>/colors.xml","position":{"startLine":1},"original":""} 
AGPBI: {"kind":"ERROR","text":"Attribute \"thumbTextPadding\" has already been defined","sourcePath":"<dir>/colors.xml","position":{"startLine":1},"original":""} 
AGPBI: {"kind":"ERROR","text":"Attribute \"switchMinWidth\" has already been defined","sourcePath":"<dir>/colors.xml","position":{"startLine":1},"original":""} 
AGPBI: {"kind":"ERROR","text":"Attribute \"switchPadding\" has already been defined","sourcePath":"<dir>/colors.xml","position":{"startLine":1},"original":""} 

Я не определено ни этих значений в моем файле color.xml. Я думаю, проблема может быть связана с библиотекой facebook sdk.

Дайте мне знать, если вам нужна дополнительная информация.

+0

Опубликовать другие зависимости –

+0

@GabrieleMariotti Я добавил зависимости. – JoseF

+0

Вы используете несколько банок? –

ответ

0

Сначала вы можете попробовать с последним v22 appcompat-v7 22.2.1. Если у вас все еще есть проблема, проверьте список зависимостей, используя gradle с именем вашего модуля: зависимости. Если мой модуль приложения попробовать в терминале:

gradle app:dependencies 

(или gradlew, если вы используете graddle обертку). Вы должны иметь что-то вроде этого:

+--- com.android.support:appcompat-v7:22.2.1 
    | \--- com.android.support:support-v4:22.2.1 
    |   \--- com.android.support:support-annotations:22.2.1 
    \--- com.facebook.android:facebook-android-sdk:4.1.0 
     +--- com.android.support:support-v4:[21,22) -> 22.2.1 (*) 
     \--- com.parse.bolts:bolts-android:1.2.0 

Вы можете видеть, что оба AppCompat-v7 и facebook-андроид-SDk собственной поддержки-v4. Чтобы исключить Опорно-v4 из facebook SDK, вы должны написать:

compile ('com.facebook.android:facebook-android-sdk:4.1.0') { 
    exclude group:'com.android.support', module: "support-v4" 
} 

Если запустить предыдущий Gradle приложения: зависимости, вы увидите, что теперь facebook SDK не имеет поддержку-v7 в его подкаталогах.

Надеюсь, это вам поможет.

+0

В настоящее время последняя версия appcompat не 22.2.1, но 23.0.0 –

+0

Да, вы правы, я должен был сказать последняя версия для api 22. – xiaomi

+0

Я исключил поддержку-v4 из Facebook, и я все равно получаю ту же ошибку – JoseF

Смежные вопросы