2013-05-21 2 views
16

У меня проблема, что Gradle не может найти мою зависимость (Android support library).Gradle не может найти зависимость (поддержка Android-библиотеки)

Мой build.gradle выглядит следующим образом:

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') 
    } 
} 

Когда я строю (на командной строке, нет IDE) я получаю следующее сообщение:

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 

Почему я не позволил добавить Android Поддержка библиотеки, как это?

+0

как насчет обхода этой проблемы путем набора зависимостей на основе пути к файлу, как это? скомпилировать файлы ("path_to_your_sdk/extras/android/support/v4/android-support-v4.jar", – kingori

ответ

16

Вы объявили хранилища зависимости в, но не объявили хранилище. Следовательно, зависимость не может быть решена. (Хранилища/зависимостей в buildscript блоке строго отделены от хранилищ/зависимостей в главном скрипте сборки.)

+2

В частности, добавьте это как корневой элемент к вашему build.gradle: репозитории { mavenCentral() } Подробности: http://www.jayway.com/2013/02/26/using-gradle-for-building-android-applications/ –

2

Добавить в корзину dependency в dependencies тег. Если у вас есть android-support-v4.jar библиотеку в папке libs, попробуйте добавить код, перечисленным ниже:

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

Я не думаю, что нужно явно вставить эту банку в свою папку libs. Это был старый способ сделать вещи в Eclipse. Вместо этого студия Gradle и Android теперь будет получать последнюю библиотеку поддержки и автоматически упаковывать ее в ваш проект, если вы добавите зависимость «компиляции». –

+0

Вы, сэр, являются реальными MVP –

8

http://pastebin.com/FmcCZwA5

Эта паста вычурно проект с AndroidAnnotations, Dagger, Джексон и Robolectric.

все, что вам нужно добавить

repositories { 
    mavenCentral() 
} 

заменить

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

с (строка 44 кода, связанного выше)

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

Gotchas: Последний бит работает на Android Studio 0.2+, только если у вас установлена ​​новая версия. Начиная с 0.2 Studio поставляется с внутренним репозиторией м2, чтобы обеспечить поддержку и библиотеки google api, поэтому, если вы обновили предыдущие версии, у вашего SDK его нет.

также убедитесь, что local.properties файл присутствует в корневой папке и точек sdk.dir в SDK