2013-05-21 10 views
16

Ho un problema che Gradle non riesce a trovare la mia dipendenza (libreria di supporto Android).Gradle non trova la dipendenza (libreria di supporto Android)

mio build.gradle si presenta così:

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

dependencies { 
    compile files('libs/FlurryAgent.jar') 
    compile group: 'com.google.android', name: 'support-v4', version: 'r7' 
    compile files('libs/YouTubeAndroidPlayerApi.jar') 
} 

android { 
    compileSdkVersion 17 
    buildToolsVersion "17" 

    defaultConfig { 
     minSdkVersion 11 
     targetSdkVersion 17 
    } 
    sourceSets { 
     main { 
      manifest.srcFile 'AndroidManifest.xml' 
      java.srcDirs = ['src'] 
      resources.srcDirs = ['src'] 
      aidl.srcDirs = ['src'] 
      renderscript.srcDirs = ['src'] 
      res.srcDirs = ['res'] 
      assets.srcDirs = ['assets'] 
     } 

     instrumentTest.setRoot('tests') 
    } 
} 

Quando costruisco (sulla riga di comando, non IDE) ottengo il seguente messaggio:

FAILURE: Build failed with an exception. 

* What went wrong: 
A problem occurred configuring root project 'AndroidCalculator'. 
> Failed to notify project evaluation listener. 
    > Could not resolve all dependencies for configuration ':compile'. 
     > Could not find com.google.android:support-v4:r7. 
     Required by: 
      :AndroidCalculator:unspecified 

* Try: 
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. 

BUILD FAILED 

Perché non mi è permesso di aggiungere il Libreria di supporto Android come questo?

+0

come su soluzione a questo problema insieme la dipendenza basata su percorso del file in questo modo? file di compilazione ("path_to_your_sdk/extras/android/support/v4/android-support-v4.jar", – kingori

risposta

16

Hai dichiarato repository di dipendenza, ma non hanno dichiarato un repository. Quindi la dipendenza non può essere risolta. (Repositories/dipendenze nel blocco buildscript sono rigorosamente separati dai repository/dipendenze nello script di build principale.)

+2

In particolare, aggiungi questo come elemento radice al tuo build.gradle: repository { mavenCentral()} Dettagli: http://www.jayway.com/2013/02/26/using-gradle-for-building-android-applications/ –

2

È necessario aggiungere ulteriore dependency nel tag dependencies. Se si dispone di android-support-v4.jar biblioteca nella cartella libs, provare ad aggiungere il codice di seguito elencati:

dependencies { 
    compile files('libs/android-support-v4.jar') 
} 
+2

Non penso che uno debba inserire esplicitamente questo jar nella propria cartella di libs.Questo era il vecchio modo di fare cose in Eclipse, invece, Gradle e Android studio recupereranno l'ultima libreria di supporto e la impacchetteranno automaticamente nel tuo progetto se aggiungi la dipendenza 'Compile'. –

+0

Tu sei il vero MVP –

8

http://pastebin.com/FmcCZwA5

Questa pasta è elaborato progetto con AndroidAnnotations, Pugnale, Jackson e Robolectric.

tutto ciò che serve è aggiungere

repositories { 
    mavenCentral() 
} 

sostituire

compile group: 'com.google.android', name: 'support-v4', version: 'r7' 

con (linea 44 del codice linkato sopra)

compile 'com.android.support:support-v4:18.0.+' 

trucchi: Ultimo bit sarà funziona su Android Studio 0.2+ solo se hai avuto una nuova installazione. Dal momento che 0.2 Studio viene fornito con il suo repository m2 interno per fornire librerie di supporto e google api, quindi se si è aggiornato da versioni precedenti il ​​tuo SDK non ce l'ha.

anche fare in modo di file local.properties è presente nella cartella principale e punti sdk.dir a SDK

Problemi correlati