0

Я только что начал использовать Android Studio и Gradle, и я столкнулся с проблемой конфликта при попытке запустить мое приложение. Я уже сделал некоторые исследования, и проблема в том, что HoloEverywhere использует специальную библиотеку поддержки-v4 (некоторые внутренние классы меняют ее видимость), которая отличается от библиотеки поддержки-v4, используемой другими библиотеками, в данном случае службой Google Play. Я прочитал в некоторых сообщениях, например, here, чтобы использовать ту же библиотеку поддержки-v4 для всех модулей, но в этом случае я не могу этого сделать, потому что без специальной библиотеки поддержки-v4 функция HoloEverywhere не работает, t коснитесь библиотеки поддержки-v4, используемой службами Google Play. Я надеюсь, что кто-то уже сталкивался с этим и нашел решение, потому что это сводит меня с орехами :)Конфликт между службами Google Play и зависимостями HoloEverywhere от Android Studio

Вот журнал ошибок:

Execution failed for task ':app:dexDebug'. 
    > com.android.ide.common.internal.LoggedErrorException: Failed to run command: 
/Users/diego/Documents/android-sdk-macosx/build-tools/19.0.1/dx --dex --output 
/Users/diego/Documents/WorkspaceAndroid/WorkspaceTest/app/build/libs/app-debug.dex 
/Users/diego/Documents/WorkspaceAndroid/WorkspaceTest/app/build/classes/debug 
/Users/diego/Documents/WorkspaceAndroid/WorkspaceTest/app/build/dependency-cache/debug 
/Users/diego/Documents/WorkspaceAndroid/WorkspaceTest/app/build/pre-dexed/debug/classes-2c9d7b640eaa13481d9d1c220b95094b847d6825.jar 
/Users/diego/Documents/WorkspaceAndroid/WorkspaceTest/app/build/pre-dexed/debug/classes-2edf2d8c7b1a7575431e0269a325d54bdc9fc798.jar 
/Users/diego/Documents/WorkspaceAndroid/WorkspaceTest/app/build/pre-dexed/debug/classes-bc16442b2fdfdfc88911109da1e6baf89a7938a0.jar 
/Users/diego/Documents/WorkspaceAndroid/WorkspaceTest/app/build/pre-dexed/debug/nineoldandroids-2.4.0-1e541581bdb9515af0d791ecbc51193b05f1c93a.jar 
/Users/diego/Documents/WorkspaceAndroid/WorkspaceTest/app/build/pre-dexed/debug/support-v4-13.0.0-2f3822466a4631d8fa7d69b3fd104b27f4df0298.jar 
/Users/diego/Documents/WorkspaceAndroid/WorkspaceTest/app/build/pre-dexed/debug/support-v4-19.0.1-a98845f591723a85fad8ed448a9cc0ced3cb3194.jar 
/Users/diego/Documents/WorkspaceAndroid/WorkspaceTest/app/build/pre-dexed/debug/support-v4-19.0.1a-f1f3d357780dd5b4d33c6ca1830109136769ef22.jar 
    Error Code: 
    2 
    Output: 
    UNEXPECTED TOP-LEVEL EXCEPTION: 
    com.android.dex.DexException: Multiple dex files define Landroid/support/v4/accessibilityservice/AccessibilityServiceInfoCompat$AccessibilityServiceInfoVersionImpl; 
    at com.android.dx.merge.DexMerger.readSortableTypes(DexMerger.java:594) 
    at com.android.dx.merge.DexMerger.getSortedTypes(DexMerger.java:552) 
    at com.android.dx.merge.DexMerger.mergeClassDefs(DexMerger.java:533) 
    at com.android.dx.merge.DexMerger.mergeDexes(DexMerger.java:170) 
    at com.android.dx.merge.DexMerger.merge(DexMerger.java:188) 
    at com.android.dx.command.dexer.Main.mergeLibraryDexBuffers(Main.java:439) 
    at com.android.dx.command.dexer.Main.runMonoDex(Main.java:287) 
    at com.android.dx.command.dexer.Main.run(Main.java:230) 
    at com.android.dx.command.dexer.Main.main(Main.java:199) 
    at com.android.dx.command.Main.main(Main.java:103) 

settings.gradle:

include ':app' 
include 'Volley' 
include 'Facebook' 
include 'ViewPagerIndicator' 
include 'HoloEverywhere' 

project(':Volley').projectDir = new File(settingsDir, 'libraries/volley') 
project(':Facebook').projectDir = new File(settingsDir, 'libraries/facebook-android-sdk/facebook') 
project(':ViewPagerIndicator').projectDir = new File(settingsDir, 'libraries/Android-ViewPagerIndicator/library') 
project(':HoloEverywhere').projectDir = new File(settingsDir, 'libraries/HoloEverywhere/library') 

build.gradle в каталоге 'app':

buildscript { 
    repositories { 
     mavenCentral() 
    } 
    dependencies { 
     classpath 'com.android.tools.build:gradle:0.7.+' 
    } 
} 

apply plugin: 'android' 

repositories { 
     mavenCentral() 
} 

android { 
     compileSdkVersion 19 
     buildToolsVersion '19.0.1' 

     defaultConfig { 
       minSdkVersion 10 
       targetSdkVersion 19 
     } 
} 

dependencies { 
     compile 'com.google.android.gms:play-services:4.0.30' 
     compile project(':Volley') 
     compile project(':Facebook') 
     compile project(':ViewPagerIndicator') 
     compile project(':HoloEverywhere') 
} 

build.gradle в каталоге «HoloEverywhere/библиотека»:

buildscript { 
     repositories { 
       mavenCentral() 
     } 
     dependencies { 
       classpath 'com.android.tools.build:gradle:0.7.+' 
     } 
} 

apply plugin: 'android-library' 

dependencies { 
     compile files ('libs/support-v4-19.0.1.jar') 
     compile files ('libs/nineoldandroids-2.4.0.jar') 
} 

android { 
     compileSdkVersion 19 
     buildToolsVersion '19.0.1' 

     defaultConfig { 
       minSdkVersion 7 
       targetSdkVersion 19 
     } 

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

ответ

0

После некоторых проб и ошибок и благодаря подсказкам @ pyus13 и @Prototik, я смог запустить мой проект с помощью Android Studio. Я удалил все локальные копии библиотек зависимостей, за исключением ViewPagerIndicator. Вот рабочие Gradle файлы:

settings.gradle:

include ':app' 
include 'ViewPagerIndicator' 

project(':ViewPagerIndicator').projectDir = new File(settingsDir, 'libraries/Android-ViewPagerIndicator/library') 

сборки.Gradle в директории 'приложения':

buildscript { 
     repositories { 
       mavenCentral() 
     } 
     dependencies { 
       classpath 'com.android.tools.build:gradle:0.7.+' 
       classpath 'org.holoeverywhere:plugin:0.2.+' 
     } 
} 

apply plugin: 'holoeverywhere' 
apply plugin: 'android' 

repositories { 
     mavenCentral() 
} 

holoeverywhere { 
     addons { 
       create 'preferences' 
       create 'slider' 
     } 
     library { 
       version '2.1.0' 
     } 
} 

android { 
     compileSdkVersion 19 
     buildToolsVersion '19.0.1' 

     defaultConfig { 
       minSdkVersion 10 
       targetSdkVersion 19 
     } 
} 

dependencies { 
     compile 'com.google.android.gms:play-services:4.0.30' 
     compile 'com.google.code.gson:gson:2.2.+' 
     compile 'com.mcxiaoke.volley:library-aar:[email protected]' 
     compile 'fr.avianey:facebook-android-api:[email protected]' 

     compile project(':ViewPagerIndicator') 
} 
1

Осуществить необходимую эти изменения, пожалуйста, избегайте использовать локальные проекты, если хранилище доступно на мавена:

Для залп использование:

compile 'com.mcxiaoke.volley:library-aar:1.0.0' 

в файле build.gradle своего приложения модуля и удалить все вещи, связанные с залп в с ettings.gradle.

Согласно holoeverywhere библиотеке здесь

https://github.com/Prototik/HoloEverywhere/blob/master/library/build.gradle

Он использует эти зависимости

dependencies { 
    compile 'com.android.support:support-v4:19.0.+' 
    compile 'com.nineoldandroids:library:[email protected]' 
} 

Загрузить это и добавить в свой проект, заменив то, что у вас есть уже.

Если зависимость поддержки находится в одном модуле проекта градации, как в вашем случае (holoeverywhere или viewpageindicator), не нужно включать его в какой-либо другой модуль, поэтому удалите его, если он есть.

После выполнения всех этих изменений синхронизируйте свой проект с помощью градации с помощью этой кнопки.

+0

Когда я использую: компилировать 'com.android.support:support-v4:[email protected]', то не могу найти Lib классы. Может быть, я делаю что-то неправильно. – diegocarloslima

+0

Я скопировал это из библиотеки github проверить мой обновленный ответ и попробовать. – pyus13

+0

Если я использую 'compile 'com.android.support:support-v4:19.0.+', он не найдет некоторые конкретные классы из пользовательской версии библиотеки поддержки. А также он не находит «com.nineoldandroids: library: [email protected]» – diegocarloslima

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

  • Нет связанных вопросов^_^