我最近安装了Android Studio的最新Canary版本,目前正在使用Android Gradle插件3.0.0-alpha 4。
我现在得到一个错误:
Error:Failed to resolve: Could not resolve project :MyLib.
Required by:
project :app
我读过:迁移本地模块的依赖项配置
dependencies
{
// This is the old method and no longer works for local
// library modules:
// debugCompile project(path: ':foo', configuration: 'debug')
// releaseCompile project(path: ':foo', configuration: 'release')
// Instead, simply use the following to take advantage of
// variant-aware dependency resolution. You can learn more about
// the 'implementation' configuration in the section about
// new dependency configurations.
implementation project(':foo')
// You can, however, keep using variant-specific configurations when
// targeting external dependencies. The following line adds 'app-magic'
// as a dependency to only the 'debug' version of your module.
debugImplementation 'com.example.android:app-magic:12.3'
}
我改了:
releaseCompile project(path: ':MyLib', configuration: 'appReleaseApp')
debugCompile project(path: ':MyLib', configuration: 'appDebug')
致:
implementation project(':MyLib')
但我仍然有这个错误:Error:Failed to resolve: Could not resolve project :MyLib.
lib gradle:
apply plugin: 'com.android.library'
android {
publishNonDefault true
compileSdkVersion 25
buildToolsVersion "25.0.3"
defaultConfig {
minSdkVersion 14
targetSdkVersion 25
}
buildTypes {
debug {
...
}
releaseApp {
...
}
releaseSdk {
...'
}
}
flavorDimensions "default"
productFlavors {
flavor1{
...
flavor2{
...
}
flavor3{
...
}
}
}
dependencies {
compile fileTree(include: ['*.jar'], dir: 'libs')
compile 'com.android.support:appcompat-v7:25.3.1'
compile 'com.android.support:support-v4:25.3.1'
compile 'com.google.code.gson:gson:2.8.0'
compile 'com.google.android.gms:play-services-maps:10.2.6'
compile 'com.google.android.gms:play-services-gcm:10.2.6'
compile 'com.google.android.gms:play-services-location:10.2.6'
}
apply plugin: 'maven'
uploadArchives {
repositories {
mavenDeployer {
repository(url: mavenLocal().url)
}
}
}
app gradle:
apply plugin: 'com.android.application'
android {
compileSdkVersion 25
buildToolsVersion "25.0.3"
defaultConfig {
vectorDrawables.useSupportLibrary = true
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
minSdkVersion 19
targetSdkVersion 25
versionCode 12
versionName "5.0.2"
}
buildTypes {
release {
...
}
debug {
...
}
}
flavorDimensions "default"
productFlavors {
flavor1 {
...
}
flavor2 {
...
}
}
testOptions {
unitTests {
all {
jvmArgs '-noverify'
systemProperty 'robolectric.logging.enable', true
}
}
}
}
repositories {
flatDir {
dirs 'libs'
}
}
dependencies {
// releaseCompile project(path: ':MyLib', configuration: 'appRelease')
// debugCompile project(path: ':MyLib', configuration: 'appDebug')
implementation project(':MyLib')
compile fileTree(dir: 'libs', include: ['*.jar'])
androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
exclude group: 'com.android.support', module: 'support-annotations'
})
compile 'com.google.android.gms:play-services-maps:10.2.6'
compile 'com.google.android.gms:play-services-location:10.2.6'
compile 'com.google.android.gms:play-services-analytics:10.2.6'
compile 'com.google.android.gms:play-services-gcm:10.2.6'
compile 'com.google.code.gson:gson:2.8.0'
compile 'com.android.support:appcompat-v7:25.3.1'
compile 'com.android.support:design:25.3.1'
compile 'com.android.support:support-v4:25.3.1'
compile 'com.android.support:cardview-v7:25.3.1'
compile 'com.android.support:gridlayout-v7:25.3.1'
compile 'com.android.volley:volley:1.0.0'
compile 'com.facebook.stetho:stetho:1.4.1'
compile 'com.facebook.stetho:stetho-okhttp3:1.4.1'
compile 'com.android.support:percent:25.3.1'
compile 'com.android.support:recyclerview-v7:25.3.1'
compile 'com.squareup.picasso:picasso:2.5.2'
testCompile 'junit:junit:4.12'
testCompile 'org.mockito:mockito-core:2.1.0'
testCompile 'org.robolectric:robolectric:3.1.4'
testCompile 'org.assertj:assertj-core:1.7.1'
compile 'com.flipboard:bottomsheet-core:1.5.0'
compile 'com.flipboard:bottomsheet-commons:1.5.0'
compile 'com.android.support.constraint:constraint-layout:1.0.1'
}
apply plugin: 'com.google.gms.google-services'
请帮帮忙
6条答案
按热度按时间jdg4fx2g1#
Google添加了更多关于如何解决它的说明:解决与依赖项匹配相关的生成错误
生成错误的原因:
您的应用包含库依赖项不包含的构建类型。
例如,您的应用包含“暂存”构建类型,但依赖项仅包含“调试”和“发布”构建类型。
请注意,当库依赖项包含您的应用不包含的构建类型时,没有问题。这是因为插件根本不会从依赖项请求该构建类型。
分辨率
使用matchingFallbacks为给定的生成类型指定替代匹配,如下所示:
k10s72fa2#
在遇到同样的问题后,我最终在App和Modules的build.gradle文件中声明了完全相同的buildTypes。
在你的情况下,加上
到你的模块的构建。Gradle应该可以做到。
确保将任何“编译项目”也更改为“实现项目”。
希望能有所帮助
xpszyzbs3#
有了新的插件,变量感知的依赖项解析
需要具有完全匹配的构建类型。迁移指南对此进行了描述
例如,不可能通过这种机制使“调试”变体消耗“发布”变体,因为生产者和消费者不匹配。(在本例中,名称'debug'指的是上面在发布依赖项一节中提到的已发布的配置对象。)现在我们发布了两个配置,一个用于编译,一个用于运行时,这种选择一种配置的旧方法真的不再起作用了。
所以旧的方法
不会再工作了。
示例
在您的示例中,它看起来像这样:
在应用程序
build.gradle
中:在模块/lib 'MyLib'
build.gradle
中:应用插件:'com.安卓.图书馆'
因此,构建类型必须 * 完全 * 匹配,不能多也不能少。
使用构建类型回退
如果子模块没有定义构建类型,则可以使用称为“matchingFallbacks”的新功能来定义默认构建类型。
使用matchingFallbacks为给定的生成类型指定替代匹配(...)
例如,如果module/lib 'MyLib' gradle看起来像这样:
应用插件:'com.安卓.图书馆'
您可以在应用
build.gradle
中定义以下内容:应用插件:'com.安卓.应用程序'
缺少风味维度
在defaultConfig块中使用missingDimensionStrategy指定插件应该从每个缺失的维度中选择的默认风格
bd1hkmkf4#
我遇到了同样的问题,我发现了这个迁移页面:构建匹配类型
其中指出:
为缺少的构建类型选择默认值
如果消费者配置了生产者没有配置的构建类型,您需要手动将消费者的构建类型与生产者的构建类型进行匹配。例如,如果您的应用模块配置了“staging”构建类型,而其库模块依赖项“mylibrary”没有配置,则Android插件会抛出以下构建错误:
要解决此错误,您需要指定Android插件应将“mylibrary”中的哪个构建类型与应用的“staging”构建类型相匹配。您可以使用应用的build.gradle文件中的buildTypeMatching属性执行此操作,如下所示:
添加buildTypeMatching为我修复了它,而没有在库中创建不必要的类型
xpcnnkqh5#
今天我在迁移到Android Studio 3后也遇到了同样的问题。问题是由于网络问题,Gradle无法解析某些库。原因可能是多方面的。如果您在代理后面工作,则需要在www.example.com文件中添加代理参数gradle.properties:
在我的情况下,我还有一个问题。我的公司使用自签名的SSL证书,所以SSL连接有一些问题。如果同样适用于您,您可以在www.example.com文件中再次设置参数gradle.properties,如下所示:
为了更清楚,您可以在Android Studio中的消息日志中单击“显示详细信息”链接。此日志将更有助于确定真实的的问题。
gg58donl6#
这个解决方案对我很有效。我使用的是Android Studio 3.1.2。Android Gradle插件3.1.2。Gradle 4.4。我有一个库模块,其中包含
trial
和premium
等风味。作为迁移到Android Gradle插件3.1.2的过程的一部分,我在库模块的gradle构建文件中添加了main
的风味维度。为了更正应用的build.gradle
文件中的构建错误,我更改了以下内容:变成
我在
defaultConfig
块中添加了以下行:missingDimensionStrategy 'main', 'premium'