빌드 타임 PNG 생성에서 다른 리소스에 대한 참조는 지원되지 않습니다.
AndroidStudio 3.0 / Android Gradle 플러그인 3.0
<vector>
<path android:fillColor="@color/image_button_disabled"/>
</vector>
이 오류가 발생합니다.
빌드 타임 PNG 생성에서 다른 리소스에 대한 참조는 지원되지 않습니다.
문제를 어디에 있습니까? 더 이상 사용되지 않는 솔루션입니까?
앱 build.gradle
에서 다음 줄을 추가하십시오.
defaultConfig{
vectorDrawables.useSupportLibrary = true
}
자세한 내용은 Android 개발자 : 벡터 드로어 블 이전 버전과의 자세한 솔루션 을 참조하십시오.
16 진 코드를 직접 참조하지 않습니다.
<vector
<path
android:fillColor="#FFF"/></vector>
이 오류에 대한 복잡가 조금 더 있습니다.
- Android 5.0 (API 레벨 21)은 공식적으로 벡터 드로어 블을 지원하는 첫 번째 버전입니다.
- minSdkVersion을 20 미만으로 사용하면 벡터 드로어 블에 대한 두 가지 솔루션이 있습니다.
- Android Studio의 Vector Asset Studio는 PNG를 생성합니다. 안드로이드 스튜디오를 문서 살펴보십시오 . 그러나 다른 리소스에 대한 참조는 빌드 시간 PNG 생성에서 지원되지 않습니다.
- 지원 라이브러리 사용
- 또는 minSdkVersion에 21 이상을 사용하십시오.
지원 라이브러리의 경우 build.gradle 파일에 명령문을 추가하십시오.
android {
defaultConfig {
vectorDrawables.useSupportLibrary = true
}
}
dependencies {
compile 'com.android.support:appcompat-v7:23.2.0'
}
minSdkVersion이 21 인 경우 다음 줄을 추가하여 PNG 생성을 추가 할 수 있습니다.
// set to an empty list to disable the feature
vectorDrawables.generatedDensities = []
이 줄을 제거하면 여전히 PNG가 생성됩니다.
벡터 드로어 블의 fillColor 속성에서 colorReference를 사용하지 말고 헥사 코드를 사용하십시오.
이런 식으로 사용
<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="#1abc9c"
android:pathData="M9,11L7,11v2h2v-2zM13,11h-2v2h2v-2zM17,11h-2v2h2v-2zM19,4h-1L18,2h-2v2L8,4L8,2L6,2v2L5,4c-1.11,0 -1.99,0.9 -1.99,2L3,20c0,1.1 0.89,2 2,2h14c1.1,0 2,-0.9 2,-2L21,6c0,-1.1 -0.9,-2 -2,-2zM19,20L5,20L5,9h14v11z"/>
이 대신
<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="@color/colorPrimary"
android:pathData="M9,11L7,11v2h2v-2zM13,11h-2v2h2v-2zM17,11h-2v2h2v-2zM19,4h-1L18,2h-2v2L8,4L8,2L6,2v2L5,4c-1.11,0 -1.99,0.9 -1.99,2L3,20c0,1.1 0.89,2 2,2h14c1.1,0 2,-0.9 2,-2L21,6c0,-1.1 -0.9,-2 -2,-2zM19,20L5,20L5,9h14v11z"/>
다음을 수행하여 문제를 해결합니다.
- drawable-v21 폴더를 만들고 거기에 변수를 사용하는 모든 드로어 블 xml을 복사하십시오.
- 원래 드로어 블 폴더에서 모든 아이콘을 정적 색상을 사용하도록 변경하십시오.
이렇게하면 컴파일러가 작동합니다.
android:fillColor="@color/image_button_disabled"
벡터 드로어 블에이 코드를 사용 하고 있다고 생각합니다 .
// image_button_disabled.xml
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:color="@color/circular_image_color_pressed" android:state_pressed="true" />
<item android:color="@color/circular_image_color_normal" />
</selector>
지원되지 않습니다.
그냥 교체하십시오 android:fillColor="#c4ca5e"
드로어 블의 동적 테마가 필요하지만 레이아웃을 업데이트하고 @ mwa91 응답으로 이동하여 모든 android:src="@drawable/..."
속성을로 변경할 시간이없는 경우 app:srcCompat="@drawable/..."
항상 드로어 블에서 16 진수 색상 값을 사용한 다음 나중에 ImageView에서 드로어 블에 색조를 지정할 수 있습니다.
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/your_drawable"
android:tint="@color/image_button_disabled"
/>
'IT' 카테고리의 다른 글
iOS 8에서 팝 오버를 표시하는 방법 (0) | 2020.07.23 |
---|---|
반응 : "this"는 구성 요소 함수 안에서 정의하지 않았습니다. (0) | 2020.07.23 |
JavaScript 배열 (JSON 형식)을 동적으로 작성하는 방법 (0) | 2020.07.23 |
round ()가 반올림되지 않는 것 (0) | 2020.07.23 |
웹 브라우저가 이미지를 캐시하지 않도록 강제하는 방법 (0) | 2020.07.23 |