gpt4 book ai didi

android - 指定 Android 库项目以包含其依赖项的正确方法是什么

转载 作者:太空宇宙 更新时间:2023-11-03 10:21:23 28 4
gpt4 key购买 nike

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

最佳答案

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

PS:dependencies { .. } 需要在 android { ... } block 之外。

关于android - 指定 Android 库项目以包含其依赖项的正确方法是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20507608/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com