升级到支持库 24.2.1 后,Android Studios 在可绘制标签向量上抛出错误

标签 android android-vectordrawable

我升级了我的 android studio 版本,现在我使用的是 2.1.3 版本,我认为这是当前版本。 com.android.support:appcompat-v7 也已升级到 24.2.0。

除了不断出错的导航后退箭头外,一切正常, 这是错误

  08-22 18:04:59.470 11403-11403/com.app.oues E/AndroidRuntime: FATAL EXCEPTION: main
                                                                Process: com.app.oues, PID: 11403
                                                                java.lang.RuntimeException: Unable to start activity ComponentInfo{com.app.oues/com.app.oues.Registration}: android.content.res.Resources$NotFoundException: File res/drawable/abc_ic_ab_back_material.xml from drawable resource ID #0x7f020014
                                                                    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2195)
                                                                    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2245)
                                                                    at android.app.ActivityThread.access$800(ActivityThread.java:135)
                                                                    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1196)
                                                                    at android.os.Handler.dispatchMessage(Handler.java:102)
                                                                    at android.os.Looper.loop(Looper.java:136)
                                                                    at android.app.ActivityThread.main(ActivityThread.java:5017)
                                                                    at java.lang.reflect.Method.invokeNative(Native Method)
                                                                    at java.lang.reflect.Method.invoke(Method.java:515)
                                                                    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779)
                                                                    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595)
                                                                    at dalvik.system.NativeStart.main(Native Method)
                                                                 Caused by: android.content.res.Resources$NotFoundException: File res/drawable/abc_ic_ab_back_material.xml from drawable resource ID #0x7f020014
                                                                    at android.content.res.Resources.loadDrawable(Resources.java:2101)
                                                                    at android.content.res.Resources.getDrawable(Resources.java:700)
                                                                    at android.support.v4.content.ContextCompat.getDrawable(ContextCompat.java:346)

这是调用工具栏上的箭头的代码

 final Drawable upArrow = ContextCompat.getDrawable(getApplicationContext(), R.drawable.abc_ic_ab_back_material);
    getSupportActionBar().setHomeAsUpIndicator(upArrow);

这是我的成绩

 android {
compileSdkVersion 24
buildToolsVersion "24.0.1"

defaultConfig {
    applicationId "com.app.oues"
    minSdkVersion 9
    targetSdkVersion 24
    versionCode 2
    versionName "1.0.1"
    vectorDrawables.useSupportLibrary = true

}
buildTypes {
    release {
        minifyEnabled false
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
    }
}}dependencies {
compile fileTree(include: ['*.jar'], dir: 'libs')
testCompile 'junit:junit:4.12'
compile 'com.android.support:appcompat-v7:24.2.0'
compile 'com.android.support:design:24.2.0' }

在阅读它之后,我将 vectorDrawables.useSupportLibrary = true 添加到 gradle 但它不起作用,错误不断弹出。如果有人能提供帮助,我将不胜感激。谢谢

最佳答案

我也遇到了 24 版 appCompat 库的问题。在我的堆栈跟踪中,低于 NotFoundException,我有一个 XmlPullParserException,其原因是“无效的可绘制标签向量”。尽管要确保您的矢量可绘制 XML 文件就在您的“可绘制”源文件夹中。此外,我刚刚使用了(已弃用的)getResources().getDrawable() 调用,它似乎有效。我也尝试过您的“ContextCompat”调用,但没有任何改变。我的电话是:

syncButton.setImageDrawable(getResources().getDrawable(R.drawable.ic_sync_timer_day));

这似乎只影响 API 19 设备(未在下方进行测试)。它适用于 API 22、23 和 24 设备(未测试 20 或 21)。

我的修复是回滚到“com.android.support:appcompat-v7:23.2.1”(以及其他相关的 V 23 内容)。现在在 API 19、22、23 和 24 的模拟器中测试正常。

弄清楚如何支持所有口味花了一些时间,但这似乎可行。

我的应用程序 Gradle.build 文件如下所示,尽管我可能在其中包含一些实际上并不需要的东西,因为我尝试了多个帖子中的所有内容(我犯了一次更改不止一件事的错误害怕)。

apply plugin: 'com.android.application'

android {
    signingConfigs {
        config {
            keyAlias 'RaceTac'
            keyPassword 'clover99'
            storeFile file('C:/Users/Dave/Documents/Dev/AndroidKeyStore.jks')
            storePassword 'clover99'
        }
    }
    compileSdkVersion 23
    buildToolsVersion "23.0.2"
    defaultConfig {
        applicationId "com.hubbardsoftware.racetac"
        minSdkVersion 16
        targetSdkVersion 23
        versionCode 14
        versionName '1.05'
        multiDexEnabled true
        vectorDrawables.useSupportLibrary = true
        generatedDensities = []
    }

    // Needed for backward compatibility with Vector graphics
    aaptOptions {
        additionalParameters "--no-version-vectors"
    }

    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
            signingConfig signingConfigs.config
        }
    }
    productFlavors {
    }
}

dependencies {
    compile fileTree(include: ['*.jar'], dir: 'libs')
    testCompile 'junit:junit:4.12'
    // compile 'com.android.support:appcompat-v7:24.2.1'
    compile 'com.android.support:appcompat-v7:23.2.1'
    compile 'com.android.support:design:23.2.1'
    compile 'com.google.android.gms:play-services:9.4.0'
    compile 'com.android.support:support-v4:23.2.1'
    compile 'com.google.android.gms:play-services-ads:9.4.0'
    compile 'com.google.android.gms:play-services-auth:9.4.0'
    compile 'com.google.android.gms:play-services-gcm:9.4.0'
    compile 'com.android.support:multidex:1.0.1'
}

不确定这是一个直接的答案,但 V 24 似乎确实存在一些问题。

关于升级到支持库 24.2.1 后,Android Studios 在可绘制标签向量上抛出错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39089543/

相关文章:

android - 创建项目 Android 时出错

安卓工作室 1.5.1 : Could not find property 'vectorDrawables'

android - Android P 的 LicenseChecker 错误

android: ImageView 不显示来自 URL 的位图

java - 在通话期间停止重复闹钟

android - 无效的可绘制标签动画矢量

Android:1024px 图像大小限制?

android - Eclipse ADT 插件的最新版本是什么

android - 带有矢量拉伸(stretch)全屏的 SplashScreen

带有关键帧的 Android 矢量可绘制动画