我最近安装了AndroidStudio的最新金丝雀版本,目前正在使用AndroidGradle插件3.0.0-alpha4。
我现在得到一个错误:
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')
但是我仍然有这个错误:错误:无法解析:无法解析项目:MyLib
自由民主党:
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)
}
}
}
应用程序梯度:
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'
请帮忙
使用新插件,变量感知依赖解析
implementation project(':MyLib')
需要有精确匹配的生成类型。《迁移指南》对此进行了描述
例如,不可能通过这种机制使调试变体使用发布变体,因为生产者和消费者不匹配。在本例中,名称debug指的是发布依赖项部分中提到的已发布配置对象。)现在我们发布了两个配置,一个用于编译,一个用于运行时,这种选择一个配置的旧方法真的不再起作用了。
所以旧的方法
releaseCompile project(path: ':foo', configuration: 'debug')
再也不行了。
在您的示例中,如下所示:
在应用程序中构建。格雷德尔
:
apply plugin: 'com.android.application'
android {
buildTypes {
debug {}
releaseApp {}
releaseSdk {}
}
...
dependencies {
implementation project(':MyLib')
}
}
在模块/lib'MyLib'build中。格雷德尔
:
apply plugin: 'com.android.library'
android {
buildTypes {
debug {}
releaseApp {}
releaseSdk {}
}
}
因此,构建类型必须完全匹配,不能多也不能少。
如果子模块未定义buildtype,则可以使用名为“matchingFallbacks”的新功能来定义默认buildtype。
使用matchingFallbacks为给定生成类型(…)指定替代匹配项
例如,如果module/lib“MyLib”gradle看起来像这样:
apply plugin: 'com.android.library'
android {
buildTypes {
debug {}
releaseLib {}
}
}
您可以在应用程序build中定义以下内容。格雷德尔
:
apply plugin: 'com.android.application'
android {
buildTypes {
debug {}
releaseApp {
...
matchingFallbacks = ['releaseLib']
}
releaseSdk {
...
matchingFallbacks = ['releaseLib']
}
}
...
dependencies {
implementation project(':MyLib')
}
}
在defaultConfig块中使用missinDimensionStrategy来指定插件应该从每个缺失的维度中选择的默认样式
android {
defaultConfig {
missingDimensionStrategy 'minApi', 'minApi18', 'minApi23'
...
}
}
面对同样的问题后,我最终在应用和模块的build.gradle文件中声明了完全相同的构建类型。
在您的情况下,添加
buildTypes {
debug {}
releaseApp {}
releaseSdk {}
}
到模块的构建。格拉德尔应该做这件事。
确保将任何“编译项目”也更改为“实现项目”。
希望有帮助
谷歌增加了更多如何解决的说明:解决与依赖匹配相关的构建错误
生成错误的原因:
应用包含库依赖项不包含的生成类型。
例如,您的应用程序包括"暂存"构建类型,但依赖项仅包括"调试"和"发布"构建类型。
请注意,如果库依赖项包含应用程序不包含的生成类型,则没有问题。这是因为插件根本不会从依赖项请求该构建类型。
决议
使用matchingFallbacks为给定生成类型指定替代匹配,如下所示:
// In the app's build.gradle file.
android {
buildTypes {
debug {}
release {}
staging {
// Specifies a sorted list of fallback build types that the
// plugin should try to use when a dependency does not include a
// "staging" build type. You may specify as many fallbacks as you
// like, and the plugin selects the first build type that's
// available in the dependency.
matchingFallbacks = ['debug', 'qa', 'release']
}
}
}
我有一个应用程序,它对第三方模块(例如,'express')有一组通常的依赖关系,这些依赖关系在package.json文件的依赖关系下指定。例如。 我希望模块化地构造自己的代码,并让package.json安装一组本地(即我当前所在的文件系统)模块。我知道可以通过运行以下操作来安装本地模块: 但是,我不知道如何通过package.json依赖项结构实现这一点。在该命令中使用选项只是将放入my p
我正在尝试将laravel项目从5.5升级到5.6。我遵循了文档中的说明 我在运行composer update时遇到此错误:此错误似乎与phpunit/phpunit有关,我将其升级到~7.0 onsort git:(硕士)✗ composer update加载具有包信息的composer存储库更新依赖项(包括require dev)无法将您的需求解析为可安装的包集。 问题1-结论:不要安装ph
在下面的Maven依赖项示例中,slf4j依赖项希望在log4j 1.2.17中拉取,log4j显式依赖项希望在1.2.15中拉取。Maven将log4j解析为版本1.2.15但是,Maven没有输出sl4j想要log4j的更高版本的警告。 我怎样才能让Maven对这些类型的冲突发出警告,而不是默默地接受1.2.15版本?
-->实现'com.firebaseui:firebase-ui-database:1.1.1' 当我添加firebase Ui数据库依赖项时,Gradle显示错误
我在尝试使用“create”创建WebClient实例的线路上收到一个NoClassDefFoundError。尝试了builder(),但仍然是一样的。 请告诉我添加的依赖项有什么问题,以及如何解决这个问题。 我添加的依赖项是 StackTrace:
问题内容: 我有一个应用程序,该应用程序具有package.json文件中依赖项下指定的第三方模块(例如“ express”)的通常依赖项。例如 我想模块化地构建自己的代码,并通过package.json安装一组本地(即我当前所在的文件系统上的)模块。我知道我可以通过运行以下命令安装本地模块: 但是,我不知道如何通过package.json依赖项结构来实现这一点。在此命令中使用该选项只是将其放入我