我正在使用com.
android.tools.build:gradle:3.1.1和最新的Gradle版本(
https://services.gradle.org/distributions-snapshots/gradle-4.8-20180417000132+0000-all.zip).
当我使用compileOnly依赖时,其中一些不会编译,有些会.
例如.
compileOnly "com.android.support:support-v4:27.1.1"
完美的工作
compileOnly "com.facebook.stetho:stetho:1.5.0"
给出编译错误:
Android dependency 'com.facebook.stetho:stetho:1.5.0' is set to compileOnly/provided which is not supported
我的印象比任何依赖都可以编译.没有其他表示(https://developer.android.com/studio/build/gradle-plugin-3-0-0-migration.html#new_configurations).这两个库都具有传递依赖性.
任何帮助将不胜感激.
解决方法
作为实验,我创建了一个新的Android Studio 3.1.1项目.然后,我将一个lib模块作为普通的Java库模块添加到它.我可以将compileOnly项目(“:lib”)添加到app模块,然后编译.我将lib模块更改为一个Android库模块(应用插件:’com.android.library’),最小清单,现在compileOnly项目(“:lib”)得到你所做的错误:“Android依赖项目” :lib’设置为compileOnly / provided,不支持“.
由于lib模块中没有其他重大更改,因此compileOnly限制在Android库模块上.
我的猜测是,目前还不清楚“仅编译”对清单条目,资源,资产等意味着什么.所以,they officially punted.
我提交了an issue,requesting documentation of this limitation.我的文件要求通常被置若罔闻.