phn*_*mnn 52 android gradle android-studio android-studio-3.0
我最近安装了最新的Canary版本的Android Studio,目前正在使用Android Gradle插件3.0.0-alpha4.
我现在得到一个错误:
Error:Failed to resolve: Could not resolve project :MyLib.
Required by:
project :app
Run Code Online (Sandbox Code Playgroud)
我读过:迁移本地模块的依赖配置
Run Code Online (Sandbox Code Playgroud)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')
Run Code Online (Sandbox Code Playgroud)
至:
implementation project(':MyLib')
Run Code Online (Sandbox Code Playgroud)
但我仍然有这个错误: 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)
}
}
}
Run Code Online (Sandbox Code Playgroud)
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'
Run Code Online (Sandbox Code Playgroud)
请帮忙
phn*_*mnn 53
谷歌添加了更多指令如何解决它:解决与依赖关系匹配相关的构建错误
构建错误的原因:
您的应用程序包含库依赖项不包含的构建类型.
例如,您的应用程序包含"暂存"构建类型,但依赖项仅包括"调试"和"发布"构建类型.
请注意,当库依赖项包含您的应用程序不包含的构建类型时,没有问题.那是因为插件根本不会从依赖项中请求构建类型.
解析度
使用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']
}
}
}
Run Code Online (Sandbox Code Playgroud)
小智 37
面对同样的问题后,我终于在App和Modules的build.gradle文件中声明了完全相同的buildTypes.
在你的情况下,添加
buildTypes {
debug {}
releaseApp {}
releaseSdk {}
}
Run Code Online (Sandbox Code Playgroud)
你的模块的build.gradle应该做的伎俩.
务必将任何"编译项目"更改为"实施项目".
希望能帮助到你
pat*_*ckf 31
使用新插件,变体感知依赖项解析
implementation project(':MyLib')
Run Code Online (Sandbox Code Playgroud)
需要具有完全匹配的构建类型.迁移指南描述了这一点
例如,不可能通过此机制使'debug'变体消耗'release'变体,因为生产者和消费者不匹配.(在这种情况下,名称'debug'指的是上面在Publishing Dependencies部分中提到的已发布配置对象.)现在我们发布了两个配置,一个用于编译,一个用于运行时,这种选择一个配置的旧方法确实没有再工作了.
所以老方法
releaseCompile project(path: ':foo', configuration: 'debug')
Run Code Online (Sandbox Code Playgroud)
将不再工作.
在您的示例中,这将如下所示:
在app中build.gradle:
apply plugin: 'com.android.application'
android {
buildTypes {
debug {}
releaseApp {}
releaseSdk {}
}
...
dependencies {
implementation project(':MyLib')
}
}
Run Code Online (Sandbox Code Playgroud)
在module/lib'MyLib'中build.gradle:
apply plugin: 'com.android.library'
android {
buildTypes {
debug {}
releaseApp {}
releaseSdk {}
}
}
Run Code Online (Sandbox Code Playgroud)
因此,构建类型必须完全匹配,不能再少.
如果子模块未定义构建类型,则可以使用名为"matchingFallbacks"的新功能来定义默认构建类型.
使用matchingFallbacks为给定的构建类型指定替代匹配(...)
例如,如果module/lib'MyLib'gradle看起来像这样:
apply plugin: 'com.android.library'
android {
buildTypes {
debug {}
releaseLib {}
}
}
Run Code Online (Sandbox Code Playgroud)
您可以在应用中定义以下内容build.gradle:
apply plugin: 'com.android.application'
android {
buildTypes {
debug {}
releaseApp {
...
matchingFallbacks = ['releaseLib']
}
releaseSdk {
...
matchingFallbacks = ['releaseLib']
}
}
...
dependencies {
implementation project(':MyLib')
}
}
Run Code Online (Sandbox Code Playgroud)
在defaultConfig块中使用missingDimensionStrategy指定插件应从每个缺少的维度中选择的默认flavor
android {
defaultConfig {
missingDimensionStrategy 'minApi', 'minApi18', 'minApi23'
...
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
25337 次 |
| 最近记录: |