更新支持库

Updating support library

我是 android 开发的初学者,所以这可能有我不知道的简单解决方案。

我已将 android studio 更新到较新的版本 (1.5.1),但我在从旧版本构建项目时遇到了一些麻烦。所以首先我 运行 在这里建造并获得塞子:

Warning:Conflict with dependency 'com.android.support:support-annotations'. Resolved versions for app (23.2.0) and test app (23.1.1) differ.

这是我的 gradle 文件:

apply plugin: 'com.android.application'

android {
    compileSdkVersion 23
    buildToolsVersion "23.0.2"

    defaultConfig {
        applicationId "hidden"
        minSdkVersion 8
        targetSdkVersion 23
        versionCode 1
        versionName "1.0"
        // tests
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    compile fileTree(include: ['*.jar'], dir: 'libs')
    compile project(':library')

    // tests
    androidTestCompile 'com.android.support:support-annotations:23.1.1'
    androidTestCompile 'com.android.support.test:runner:0.4'
    androidTestCompile 'org.hamcrest:hamcrest-library:1.3'
}

显而易见的解决方案是将版本重写为 23.2.0

但后来我重新运行 构建,真正的问题开始了:

如果文件\res\values-v11\values-v11.xml

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <style name="MD_Dark" parent="Theme.AppCompat.Dialog.Alert">
        <item name="android:windowMinWidthMajor">@dimen/abc_dialog_min_width_major</item>
        <item name="android:windowMinWidthMinor">@dimen/abc_dialog_min_width_minor</item>

        <item name="md_divider">@color/md_divider_white</item>
        <item name="md_list_selector">@drawable/md_selector_dark</item>
        <item name="md_btn_stacked_selector">@drawable/md_selector_dark</item>
        <item name="md_btn_positive_selector">@drawable/md_btn_selector_dark</item>
        <item name="md_btn_neutral_selector">@drawable/md_btn_selector_dark</item>
        <item name="md_btn_negative_selector">@drawable/md_btn_selector_dark</item>

        <item name="android:actionModeBackground">@color/primary_material_dark</item>
        <item name="android:actionModeCloseDrawable">@drawable/abc_ic_ab_back_mtrl_am_alpha</item>

        <item name="android:windowAnimationStyle">@style/MD_WindowAnimation</item>
        <item name="android:backgroundDimEnabled">true</item>
    </style>file continues...

以下错误:

Error:(15, 54) No resource found that matches the given name (at 'android:actionModeCloseDrawable' with value '@drawable/abc_ic_ab_back_mtrl_am_alpha').

现在我做了研究,根据 Update support library 23.2.0 build bug 我应该只用新文件名重命名资源,但文件已生成,不应更改,重建后它会重新生成,所以我似乎无法想办法摆脱这个麻烦。

感谢您的帮助。

您可以使用 23.2.0 解决警告。

androidTestCompile 'com.android.support:support-annotations:23.2.0'

关于这个问题。

Error:(15, 54) No resource found that matches the given name (at 'android:actionModeCloseDrawable' with value '@drawable/abc_ic_ab_back_mtrl_am_alpha').

您引用的是 私有资源

您可以查看 google tracker 一个可能的解决方案是 尝试在您的样式中将 abc_ic_ab_back_mtrl_am_alpha 的引用更改为 abc_ic_ab_back_material

解决方案是将此外部库更改为支持新支持库 v23.2.0 中更改的最新版本

compile ('com.github.afollestad.material-dialogs:core:0.8.5.6@aar')

由于某些原因必须手动完成。