2013-10-31 8 views
7

Recentemente ho deciso di passare da Eclipse ad Android Studio. Ho importato un progetto su cui stavo lavorando e ora sto ricevendo questo errore quando provo a eseguire il progetto.Android Studio Impossibile richiamare IncrementalTask.taskAction() sull'attività ': progetto: dexDebug'

Gradle: Execution failed for task ':project:dexDebug'. 
> Could not call IncrementalTask.taskAction() on task ':project:dexDebug' 

Ho navigato in questo sito per 2 giorni e sto provando diversi suggerimenti inutilmente. Ho fatto eseguire gradlew --stacktrace compileDebug e questo è quello che ho ottenuto:

C:\Users\adam\AndroidStudioProjects\projectProject>gradlew compileDebug --stacktrace 
Relying on packaging to define the extension of the main artifact has been deprecated and is scheduled to be removed in Gradle 2.0 
:project:preBuild UP-TO-DATE                   
:project:preDebugBuild UP-TO-DATE 
:project:preReleaseBuild UP-TO-DATE 
:project:prepareComAndroidSupportAppcompatV71800Library UP-TO-DATE 
:project:prepareComGoogleAndroidGmsPlayServices3225Library UP-TO-DATE 
:project:prepareDebugDependencies    
:project:compileDebugAidl UP-TO-DATE 
:project:compileDebugRenderscript UP-TO-DATE 
:project:generateDebugBuildConfig UP-TO-DATE 
:project:mergeDebugAssets UP-TO-DATE 
:project:mergeDebugResources UP-TO-DATE 
:project:processDebugManifest UP-TO-DATE 
:project:processDebugResources UP-TO-DATE 
:project:generateDebugSources UP-TO-DATE 
:project:compileDebug UP-TO-DATE 

BUILD SUCCESSFUL 

Total time: 10.459 secs 

Tuttavia ancora sto ottenendo che di errore quando si tenta di eseguire effettivamente il progetto. Qui è la mia build.gradle (ho una cartella 'librerie' nel mio progetto con tutti i vasi per un Google Maps/posti app):

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

repositories { 
    mavenCentral() 
} 

android { 
    compileSdkVersion 18 
    buildToolsVersion "18.1.1" 

    defaultConfig { 
     minSdkVersion 8 
     targetSdkVersion 18 
    } 
} 

dependencies { 
    compile fileTree(dir: 'libs') 
    compile 'com.google.android.gms:play-services:3.2.25' 
    compile 'com.android.support:support-v4:18.0.0' 
    compile 'com.android.support:appcompat-v7:+' 
} 

e la mia settings.gradle:

include ':project', ':project:libs:android-support-v4', ':project:libs:google-api-client-1.10.3-beta', 
     ':project:libs:google-api-client-android2-1.10.3-beta', ':project:libs:google-http-client-1.10.3-beta', 
     ':project:libs:google-http-client-android2-1.10.3-beta', ':project:libs:google-oauth-client-1.10.1-beta', 
     ':project:libs:gson-2.1', ':project:libs:guava-11.0.1', ':project:libs:jackson-core-asl-1.9.4', 
     ':project:libs:jsr305-1.3.9', ':project:libs:protobuf-java-2.2.0', ':project:libs:GoogleAdMobAdsSdk-6.4.1' 

Come ho già detto, ho provato praticamente tutto quello che ho letto su questo errore e non sto avendo fortuna. Qualsiasi aiuto sarebbe molto apprezzato.

risposta

7

Se il problema è uguale al mio, il problema è un conflitto tra le dipendenze della libreria.

Nel mio caso, il colpevole era un contenitore di libreria di terze parti all'interno della directory libs, che includeva la libreria android-support-v4. Ciò era in conflitto con la dipendenza del mio progetto nella libreria di supporto (ad esempio la riga compile 'com.android.support:support-v4:18.0.0' in build.gradle).

Una volta aggiornato a una versione della libreria di terze parti che non ha richiesto/include la libreria di supporto, il problema è stato risolto.

La ragione per cui non si vede alcun problema al momento del rilascio del compito compileDebug, è che il problema si manifesta durante la fase di dexDebug (quando Gradle fonde il bytecode da tutti i progetti e le librerie, un po 'la fase di collegamento in C/C++) .

prova invece con ./gradlew [clean] assembleDebug

+1

È anche possibile esaminare le dipendenze eseguendo 'dipendenze gradle'. Mostra le versioni richieste e come sono stati risolti quando si sono verificati conflitti. – mindeh

+0

dipendenze gradle dove eseguire .... io non capisco :( –

+0

Nel mio caso è stato un conflitto tra: file di compilazione ('libs/GoogleAdMobAdsSdk-6.4.1.jar') e compilare 'com.google.android .gms: play-services: 4.0.30 ' – unify

1

pensato che avrei dovuto condividere rapidamente la mia esperienza in questo dato appena avuto lo stesso problema, ma risolto ora. Quindi se aiuta qualcun altro.

sto usando Android Studio come bene e stavo giocando con i layout e il caricamento di loro usando il mio codice, in modo da non avere "layout/impaginazione-terra" cartelle di tipo standard ..

Ad ogni modo, ho corretto alcun codice e riavviato i miei cambiamenti fase per fase senza fortuna per risolvere l'errore .. Poi ho notato un avvertimento sul nome della cartella non accettata .. era qualcosa di semplice come "layout-alternative1234"

In ogni caso, rinominato la cartella e nessun cambiamento. IDE riavviato e l'accordo stesso ... Controllato di nuovo l'avvertimento notato che era situato nelle cartelle di debug ..

Ricostruire Progetto in questo caso risolto il problema rapidamente per me, normalmente vorrei ricostruire durante la maggior parte delle modifiche alla struttura. .. ma deve aver dimenticato questa volta.

Problemi correlati