VectorDrawableCompat.create не может создать изображение из vector.xml на старых устройствах
Я использовал этот код для поддержки векторных изображений на старых устройствах:
VectorDrawableCompat.create(context.getResources(), resId, context.getTheme());
Но в данный момент это не работает (я установил несколько обновлений для Android Studio 2.1.1)
Мой gradle:
apply plugin: 'com.android.application'
android {
compileSdkVersion 23
buildToolsVersion "23.0.3"
defaultConfig {
minSdkVersion 16
targetSdkVersion 23
vectorDrawables.useSupportLibrary = true
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
dataBinding {
enabled = true
}
aaptOptions {
additionalParameters "--no-version-vectors"
}
buildTypes {
release {
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
testCompile 'junit:junit:4.12'
testCompile 'org.mockito:mockito-core:1.10.19'
androidTestCompile 'com.android.support:support-annotations:23.4.0'
androidTestCompile 'com.android.support.test:runner:0.4.1'
androidTestCompile 'com.android.support.test:rules:0.4.1'
androidTestCompile 'org.hamcrest:hamcrest-library:1.3'
androidTestCompile 'com.android.support.test.espresso:espresso-core:2.2.1'
compile 'com.android.support:appcompat-v7:23.4.0'
compile 'com.android.support:design:23.4.0'
compile 'com.android.support:cardview-v7:23.4.0'
compile 'com.android.support:recyclerview-v7:23.4.0'
compile 'de.hdodenhof:circleimageview:1.3.0'
compile 'com.squareup.picasso:picasso:2.5.2'
compile 'com.squareup.okhttp:okhttp:2.5.0'
}
Пример векторного ресурса:
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="24.0"
android:viewportHeight="24.0">
<path
android:fillColor="#FF000000"
android:pathData="M3.9,12c0,-1.71 1.39,-3.1 3.1,-3.1h4L11,7L7,7c-2.76,0 -5,2.24 -5,5s2.24,5 5,5h4v-1.9L7,15.1c-1.71,0 -3.1,-1.39 -3.1,-3.1zM8,13h8v-2L8,11v2zM17,7h-4v1.9h4c1.71,0 3.1,1.39 3.1,3.1s-1.39,3.1 -3.1,3.1h-4L13,17h4c2.76,0 5,-2.24 5,-5s-2.24,-5 -5,-5z"/>
</vector>
Он печатает ошибки:
android.content.res.Resources $ NotFoundException: файл res/drawable-hdpi-v4/ic_insert_link_24.png из XML-идентификатора ресурса xml типа #0x7f020062 в android.content.res.Resources.loadXmlResourceParser(Resources.java:3045) на android.content.res.Resources.loadXmlResourceParser(Resources.java:2992) в android.content.res.Resources.getXml(Resources.java:1772) в android.support.graphics.drawable.VectorDrawableCompat.create(VectorDrawableCompat.java:408)
Кто знает, как исправить эту ошибку?
PS я знаю что ImageView
и некоторые другие View
с поддерживает VectorDrawableCompat
по умолчанию, но мне нужно получить Drawable, чтобы нарисовать его на Canvas
1 ответ
Посмотрите на ошибку, должен сказать что-то.
android.content.res.Resources $ NotFoundException: файл res/drawable-hdpi-v4/ic_insert_link_24.png из xml-типа xml-ресурса с идентификатором #0x7f020062
ты используешь ic_insert_link_24.png
это не должно присутствовать в drawable folder
так что это ошибка, попробуйте поставить его на drawable folder
и проверь это.