Jetifier는 무엇입니까? 예를 들어 androidx 패키지 종속성을 사용하여 새 프로젝트를 만들려면이 새 프로젝트에서 gradle.properties 파일에 다음 줄을 추가해야 합니다.
android.enableJetifier=true
"제티 파이어 사용"이란 무슨 뜻입니까?
답변:
올해 Google I / O (18), Google은 개발자의 삶을 편하게 해주는 라이브러리 세트 / 컬렉션 인 Jetpack을 발표했습니다.
Jetpack에는 이전에 도입 된 Android 아키텍처 구성 요소 (ViewModel, Room, Paging, LiveData 등)와 새로 도입 된 WorkManager, Navigation과 같은 아키텍처 구성 요소가 포함되어 있습니다. 이 Jetpack 외에도 AndroidX, AndroidKTX 등과 같은 다른 라이브러리 세트도 있습니다.
AndroidX는 지원, 데이터 바인딩, 디자인 등과 같은 Android 지원 라이브러리를위한 새로운 패키지 구조입니다.
예를 들어 이제 와드 개발자는 androidx.databinding 을 사용 합니다. android.databinding 대신 . 프로젝트에서 라이브러리를 가져 오는 동안
이를 통해 Google은 라이브러리 패키지에 SemVer 또는 Semantic Versioning 을 추가 할 수 있습니다 . 개발자의 경우 이는 모든 지원 라이브러리에 대해 동일한 지원 라이브러리 버전을 사용할 필요가 없음을 의미합니다. 모든 지원 또는 더 나은 AndroidX 라이브러리는 자체 버전 관리를 유지합니다.
개발자를위한 또 다른 이점은 프로젝트의 모든 지원 라이브러리에 대해 동일한 버전을 유지하는 데 신경 쓸 필요가 없다는 것입니다.
Jetifier에 대해서는 빌드시 모든 종속성 지원 패키지를 변환합니다. Jetifier의 공식 문서에 따라
Jetifier 도구는 대신 동등한 AndroidX 패키지에 의존하도록 지원 라이브러리 종속 라이브러리를 마이그레이션합니다. 이 도구를 사용하면 Android Studio와 함께 번들로 제공되는 Android Gradle 플러그인을 사용하는 대신 개별 라이브러리를 직접 마이그레이션 할 수 있습니다.
프로젝트에서 AndroidX를 사용하려면 프로젝트의 targetSdkVersion을 28 로 설정 하고 gradle.properties 파일 에 다음 두 줄을 추가 해야 합니다.
android.useAndroidX=true
android.enableJetifier=true
이것이 귀하의 질문에 대답하기를 바랍니다.
편집하다
이 링크 에는 AndroidX 카운터 부분과 모든 지원 라이브러리 구성 요소의 매핑이 있습니다.
AndroidX에 대한 자세한 설명은 이 블로그 를 참조하십시오.
에 익숙하다고 가정합니다 AndroidX
. 그렇지 않은 경우 @ 이 게시물을 참조하십시오 .
Jetifier
support libraries
모든 종속성을AndroidX
자동으로 변환 합니다.이 값을 설정하지 않으면true
프로젝트에 지원 ( 28.0.0 버전 이후 더 이상 사용되지 않음 )과 중복되는 AndroidX 패키지가 모두 포함됩니다.
당신이 PhotoView.java
의존하는 경우. 지원 라이브러리를 사용합니다 AppCompatImageView
.
import android.support.v7.widget.AppCompatImageView;
이 클래스는 이제 androidx
패키지 로 이동 되었으므로 어떻게 PhotoView
androidx 를 얻을 수 있습니까 AppCompatImageView
? 그리고 앱은 여전히 기기에서 실행됩니다.
누가 이걸 냈어?
Jetifier 는 빌드시 모든 종속성 지원 패키지를 변환합니다.
Jetifier는 프로젝트를 빌드하는 동안 로 변환 android.support.v7.widget.AppCompatImageView
됩니다 androidx.appcompat.widget.AppCompatImageView
.
Jetifier를 활성화하는 것은 지원 라이브러리 에서 AndroidX 로 마이그레이션 할 때 중요합니다 .
AndroidX에 대한 자세한 내용은 이 게시물 을 참조하십시오 .
종속성 클래스를 사용하는 동안 Jetifier를 활성화 한 후 코드에 컴파일 시간 오류가 표시 될 수 있습니다. 어떤 당신은 삭제하여 제거 할 수 있습니다 .idea
, .gradle
재 동기화 프로젝트.
Jetifier 는 Android 프로젝트를 AndroidX 로 마이그레이션하는 데 도움이됩니다 .
Jetifier 는 AndroidX 프로젝트와 호환되는 타사 라이브러리 를 만드는 데 도움이됩니다 .
Android 프로젝트에서 타사 라이브러리를 사용하지 않는 경우 Jetifier는 AndroidX로 이전하는 경우 프로젝트와 호환되는 '타사 라이브러리 만들기'에만 도움이되므로 Jetifier를 사용할 필요가 없습니다. 따라서 프로젝트에서 Jetifier를 사용하도록하려면 gradle.properties에 아래 코드를 작성 합니다.
android.enableJetifier=true
android.useAndroidX=true
AndroidX로 마이그레이션하지 않고 Android 라이브러리를 사용하는 이전 방법 (예 : com.android.support ) 을 사용 하지 않는 경우 이러한 타사 라이브러리가 이전 방법과 이미 호환되므로 이러한 타사 라이브러리를 호환 할 필요가 없습니다. Android 라이브러리 사용. 이 경우 Jetifier를 사용할 필요가 없으므로 이제 위에 주어진 줄을 쓸 필요가 없거나 다음과 같이 간단히 작성하여 androidx로 이동하기 위해 값을 변경할 수 있습니다.
android.enableJetifier=false
android.useAndroidX=false
제트기
jetifier은 자동으로 마이그레이션하는 편리한 도구입니다 dependencies
에를 AndroidX
빌드시에. 그것이 없으면 마이그레이션하기 전에 AndroidX 버전을 사용하는 데 사용하는 모든 종속성이 필요하며 이는 당분간 발생하지 않을 것입니다.
주의해야 할 중요한 제한 사항이 있습니다. jetifier는 패키지 된 아티팩트에서만 작동합니다. 직접 업데이트해야하는 소스 코드에서는 작동하지 않습니다.
AndroidX를 활성화하려면 gradle.properties
파일에 2 개의 플래그를 추가해야 합니다. 첫 번째 플래그는 Android 플러그인에 AndroidX
대신 패키지 를 사용하도록 지시 AppCompat
하고 두 번째 플래그는 다음을 활성화합니다 Jetifier
.
android.useAndroidX=true
android.enableJetifier=true
이 두 줄을 추가하십시오 android.useAndroidX = true
android.enableJetifier = true
buid.gradle에서 그것은 나를 위해 일했습니다
implementation "com.commonsware.cwac:document:0.3.0"
당신에dependencies
. 해당 라이브러리 버전은com.android.support:support-annotations:27.0.2
. 그러나androidx.annotation:annotation
다른 AndroidX 종속성 사용의 일부로 사용하고 싶습니다 . Jetifier 어떻게 든 업데이트하는 것com.commonsware.cwac:document
사용androidx.annotation:annotation
.