android - studio - implementation exclude



什么是正确的方式来指定一个Android库项目,以包括其依赖项 (1)

这是预期的行为。 即使涉及传递依赖关系,也只考虑目前解析配置的项目的存储库声明。 通常情况下,存储库是在根项目的allprojects { .. }subprojects { ... }块中声明的,在这种情况下,这个问题永远不会发生。

PS: dependencies { .. }需要去android { ... }块之外。

在Android Studio中,我试图编译一个使用Android库的Android应用程序模块。
该库包含一个Bugsense的jar文件(由gradle自动包含)。

尽管库模块编译正确,但应用程序模块却因为要查找库模块中使用的Bugsense jar文件而失败。

我有一个解决方法,允许项目编译。 通过还包括项目中的Bugsense依赖项一切正常。

我的问题是:如何在不重复Bugsense依赖关系的情况下编译项目?

这是我的库项目的build.gradle文件。

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

repositories {
    mavenCentral()
    maven { url 'http://www.bugsense.com/gradle/' }
}

android {
    compileSdkVersion 15
    buildToolsVersion "19.0.0"

    defaultConfig {
        minSdkVersion 15
        targetSdkVersion 15
    }
}

dependencies {
    compile 'com.bugsense.trace:bugsense:3.6'
}

库项目被称为“util”

以下是应用程序的build.gradle的android部分

android {
    compileSdkVersion 15
    buildToolsVersion '19.0.0'

    defaultConfig {
        minSdkVersion 15
        targetSdkVersion 15
    }

    dependencies {
        compile project(':util')
    }
}

当我编译这个时,我得到以下错误:

* What went wrong:
A problem occurred configuring project ':br'.
> Failed to notify project evaluation listener.
   > Could not resolve all dependencies for configuration ':br:_DebugCompile'.
      > Could not find com.bugsense.trace:bugsense:3.6.
        Required by:
            dss:br:unspecified > dss:util:unspecified

我可以通过将Bugsense添加到应用程序的build.gradle文件的存储库部分来进行编译。 以下是我添加到应用程序项目的build.gradle文件的代码。

repositories {
    mavenCentral()
    maven { url 'http://www.bugsense.com/gradle/' }
}

请记住,上面的代码位于应用程序项目和库的build.gradle中。

如何避免将Bugsense依赖项添加到应用程序和库项目中?

更新:

我正在使用Gradle 1.8

我正在从命令行编译“gradle clean assembleDebug”

以下是应用程序项目的完整build.gradle文件:

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

repositories {
    mavenCentral()
    //maven { url 'http://www.bugsense.com/gradle/' }
}

android {
    compileSdkVersion 15
    buildToolsVersion '19.0.0'

    defaultConfig {
        minSdkVersion 15
        targetSdkVersion 15
        testPackageName "com.myapp.test"
    }

    dependencies {
        compile project(':common')
        compile project(':util')
    }
}

dependencies {
    instrumentTestCompile 'com.jayway.android.robotium:robotium-solo:4.3'
    instrumentTestCompile 'com.squareup:fest-android:1.0.+'
    instrumentTestCompile 'com.squareup.spoon:spoon-client:1.0.+'
    instrumentTestCompile 'com.google.guava:guava:15.0'
}

configurations { spoon }
dependencies   { spoon 'com.squareup.spoon:spoon-runner:1.0.5' }




android-gradle