0

我使用Android Studio和搖籃剛開始,我遇到衝突錯誤,當我嘗試運行我的應用程序服務和HoloEverywhere依賴。我已經做了一些研究,問題是,HoloEverywhere使用從其他庫使用的支持-V4庫不同的自定義支持-V4庫(一些內部類都有其知名度更改),在這種情況下,谷歌播放服務。我讀過像here一些職位,在所有模塊使用相同的支持-V4庫,但在這種情況下,我不能這樣做,因爲不支持自定義-V4庫,該HoloEverywhere不工作,我可以」請觸摸Google Play服務使用的support-v4庫。我希望有人已經經歷了這一點,並找到了解決辦法,因爲這是推動我堅果:)衝突方面發揮在Android工作室

以下是錯誤日誌:

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)的gradle這個項目模塊並不需要把它列入任何其他模塊,以便去除它是否有。

做着做着所有這些更改後同步使用此按鈕gradle這個項目。

+0

當我使用:編譯 'com.android.support:support-v4:[email protected]',它無法找到的lib類。也許我做錯了什麼。 – diegocarloslima

+0

我已經從github庫複製該檢查我更新的答案並嘗試。 – pyus13

+0

如果我使用'compile'c​​om.android.support:support-v4:19.0.+',它將不會從支持庫的自定義版本中找到某些特定的類。並且它也沒有找到'com.nineoldandroids:library:[email protected]' – diegocarloslima