Java Android/Gradle:为构建类型的子集指定依赖项
我正在处理的android项目有3种构建类型——Java Android/Gradle:为构建类型的子集指定依赖项,java,android,groovy,gradle,raygun,Java,Android,Groovy,Gradle,Raygun,我正在处理的android项目有3种构建类型——debug、qa和release: buildTypes { release { ... } qa { ... } debug { ... } } 我希望依赖项(崩溃报告库)仅适用于debug和qa,而不适用于release 我想这可以通过复制构建类型特定的编译行来实现,如下所示: dependencies { ... debugCom
debug
、qa
和release
:
buildTypes {
release {
...
}
qa {
...
}
debug {
...
}
}
我希望依赖项(崩溃报告库)仅适用于debug
和qa
,而不适用于release
我想这可以通过复制构建类型特定的编译行来实现,如下所示:
dependencies {
...
debugCompile 'com.mindscapehq.android:raygun4android:1.3.0:sources'
qaCompile 'com.mindscapehq.android:raygun4android:1.3.0:sources'
}
有没有办法做到这一点而不重复?您可以在依赖项中迭代生成类型
dependencies {
...
android.buildTypes.each { type ->
if(type.name.equals("debug") || type.name.equals("qa")) {
compile('com.mindscapehq.android:raygun4android:1.3.0:sources')
}
}
}
你对复制有什么担心?是不是当版本更改时,您必须在多个位置执行此操作?如果是这样,只需为版本使用一个变量,并将其用作依赖项<代码>ext{raygunVersion='com.mind….:1.3.0:sources'}然后
依赖项{debugCompile raygunVersion}
,这是我们在构建中如何实现的。感谢您的响应,但这似乎没有将依赖项编译到项目中。出现编译错误,表明找不到此库中的源文件。请在没有源文件的情况下尝试编译('com.mindscapehq.android:raygun4android:1.3.0')@user1405990我在项目中尝试过,一切正常。发布您的整个gradle文件,因为这是正确的答案。我尝试过,但在这两种情况下,“发布”和“构建”构建变体Android Studio都尝试使用为“构建”选择的libs:dependencies{Android.buildTypes.each{type->if(type.name==“debug”){compile(name:'library-debug',ext:'aar')}else{compile(name:'library-release',ext:'aar')}错误是:“多个dex文件定义Lcom/my/package/Classname”