Android支持Repo 46.0.0和Android Studio 2.3

Android支持Repo 46.0.0和Android Studio 2.3,android,android-studio,android-support-library,Android,Android Studio,Android Support Library,随着Android Studio通知的弹出,我今天将我的支持库更新为46.0.0 我将错误记录在下面: 错误:任务“:app:processDevDebugManifest”的执行失败 清单合并失败:属性元数据#android.support。VERSION@value值=(25.3.0)自 [com.android.support:support-v13:25.3.0]AndroidManifest.xml:27:9-31 也出现在[com.android.support:preference

随着Android Studio通知的弹出,我今天将我的支持库更新为46.0.0

我将错误记录在下面:

错误:任务“:app:processDevDebugManifest”的执行失败

清单合并失败:属性元数据#android.support。VERSION@value值=(25.3.0)自 [com.android.support:support-v13:25.3.0]AndroidManifest.xml:27:9-31 也出现在[com.android.support:preference-v7:26.0.0-alpha1] xml:24:9-38值=(26.0.0-alpha1)。建议:添加 'tools:replace=“android:value”'到 xml:25:5-27:34来覆盖

我更新了所有依赖项,使用25.3.0版本的26.0.0 Alpha 1,但结果是我需要将compileSdk从25增加到26。 如果你有AS 2.3,你不能这么做,你需要从金丝雀那里获得不稳定的alpha/beta版本

此链接显示更改:

关于迁移到新的android O,这是一个链接:

使用稳定版本似乎无法与新存储库配合使用

我怎样才能回到Android Studio存储库版本45而不是新的46

**更新:合并清单显示生成的库清单中包含的一个

<meta-data
        android:name="android.support.VERSION"
        android:value="26.0.0-alpha1" />

但是由于它是一个生成的文件,编辑是无用的,这就是为什么现在我坚持使用rev 45,直到新的AS在稳定构建中

有什么问题 有些库依赖于Android支持库的版本“X或更高版本”,因此Gradle dependency resolution会获取可用的最新版本,而忽略在
dependencies
块中指定的确切版本

这不是你想要的。您希望所有支持库具有相同的版本,并且主版本必须与编译SDK版本匹配

解决办法是什么 幸运的是,您可以强制使用特定的支持库版本

将其放在应用程序模块的末尾
build.gradle

configurations.all {
    resolutionStrategy.eachDependency { DependencyResolveDetails details ->
        def requested = details.requested
        if (requested.group == 'com.android.support') {
            // Skip multidex because it follows a different versioning pattern.
            if (!requested.name.startsWith("multidex")) {
                details.useVersion '25.3.0'
            }
        }
    }
}
当然,用您正在使用的任何版本替换该版本

dependecies
块中支持库的版本值现在不相关

如果你有疑问 这是一个很好的解决方案,它正在发挥作用

你能帮什么忙 查找支持哪些库版本的库

gradlew dependencies --configuration compile -p <module name> | grep ,
gradlew依赖项——配置编译-p | grep,
并让上述库的作者知道,他们应该过渡地依赖于他们的库可以使用的最古老的支持库


这旨在完全避免该问题。

这是一个临时修复,无法解决潜在问题!它帮助我以最少的修改继续开发软件。只需将其添加到主清单:

<meta-data
    tools:replace="android:value"
    android:name="android.support.VERSION"
    android:value="25.3.0" />

他们的解决方案是:

  • 移动到项目浏览器视图
  • 深入了解他们的外部库
  • 查看哪个库正在使用26.0.0-alpha6
  • 现在,在步骤3中的库的基础上,在app.gradle中编写此代码
  • 例:就我而言:

    configurations.all {
        resolutionStrategy.force 'com.android.support:appcompat-v7:25.3.0'
        resolutionStrategy.force 'com.android.support:support-v13:25.3.0'
    }
    

    这将迫使project使用上述库。

    我认为最好的解决方案是将Android支持库恢复到45版

    为此,请打开此链接(将版本更改为适合您需要的任何版本)


    下载后,将m2repository解压并复制到android sdk根文件夹\extras\android。在解压缩之前,请确保删除现有存储库以避免出现问题。

    只需执行此操作即可:-

    编译'com.android.support:appcompat-v7:25.3.1'

    这里的v7:25.3.1是我的当前版本,您刚刚发布了urs


    应用程序内渐变文件

    步骤1

    要避免Gradle检查不兼容的
    com.android.support
    版本,快速修复方法是在app module
    build.Gradle
    中添加以下代码

    dependencies {
        //noinspection GradleCompatible
    }
    

    这是一个临时修复程序,无法解决根本问题!它有助于继续开发您的应用程序,只需很少的修改

    步骤2

    将其添加到主清单文件
    AndroidManifest.xml

    <meta-data
        tools:replace="android:value"
        android:name="android.support.VERSION"
        android:value="25.3.1" />
    

    NB:建议确保您的Gradle库已更新且兼容,以避免运行时错误。

    对我来说,问题是这里的版本不一样

    implementation 'com.android.support:appcompat-v7:**26.0.0-beta1**'
    implementation 'com.android.support:support-v4:**26.0.0-beta1**'
    implementation 'com.android.support:design:**26.0.0-beta1**'
    
    而卡片视图是

    compile 'com.android.support:cardview-v7:26.1.0'
    
    因此,我将版本库更改为

    implementation 'com.android.support:appcompat-v7:26.1.0'
    implementation 'com.android.support:support-v4:26.1.0'
    implementation 'com.android.support:design:26.1.0'
    

    希望这些帮助,祝你好运

    在这里查看我对android“O”
    gradle
    配置的答案@向导2.3版无法使用,因为我无法下载最新的平台:错误:在:*\AppData\Local\android\sdk中找不到哈希字符串为“android-O”的目标:*\AppData\Local\android\sdk好的-将频道切换到canary。这是显而易见的答案,但一些公司喜欢使用稳定版本。推动一个破坏我们工作平台的更新是一个非常糟糕的举动,特别是当我们有一个产品,我们不想移动到版本O,因为它已经发布。是时候重新安装旧版本了,我猜是喔…等等!安卓
    O
    尚未发布。发布的版本是预览版。您是否阅读了我答案中的脚注?这不会改变支持库版本26已导入的事实。您只是在掩盖问题,它最终会咬到您。@EugenPechanec您的解决方案对我不起作用:无法解析符号“DependencySolveDetails”。我遗漏了什么?如果你对我的答案有疑问,为什么不评论我的答案?Groovy(build.gradle语言)是动态类型的。请删除“DependencyResolveDetails”,然后重试。如果不起作用,请留下另一条评论。@EugenPechanec我是新用户,我没有足够的声誉(现在可能低于0)对你的答案发表评论。你的建议对我不起作用。我收到与未收到相同的错误消息。我暂时坚持我的计划。现在没有时间重新安装。还是不明白投票结果。也许我没有足够准确地描述我在修复背后的动机
    compile 'com.android.support:cardview-v7:26.1.0'
    
    implementation 'com.android.support:appcompat-v7:26.1.0'
    implementation 'com.android.support:support-v4:26.1.0'
    implementation 'com.android.support:design:26.1.0'