Android AndroidX 이전

4547 단어 AndroidX옮기다
1.머리말
AndroidX replaces the original support library APIs with packages in the androidx namespace. Only the package and Maven artifact names changed; class,method,and field names did not change.Google 은 android support 라 이브 러 리 를 더 이상 유지 하지 않 습 니 다.android support 의 API 는 네 임 스페이스 AndroidX 의 패 키 지 를 교체 합 니 다.즉,해당 Maven 이 변 경 됩 니 다.
2.Android X 이전
2.1 이전 준비
기 존 프로젝트 의 support 라 이브 러 리 버 전이 28(Android 9)로 업 그 레이 드 된 것 도 support library 의 마지막 버 전 으로 SDK 28 과 AndroidX 1.0 이 같은 효 과 를 보 였 다.This is because AndroidX artifacts with version 1.0.0 are binary equivalent to the Support Library 28.0.0 artifacts.,

compileSdkVersion 28
Android studio 3.2 또는 더 높 은 버 전 을 사용 하 는 것 을 권장 합 니 다.(현재 최신 버 전 은 4.0 에 도 달 했 습 니 다.)gradle-wrapper.properties 에서 Gradle 플러그 인 버 전 은 4.6 보다 낮 지 않 습 니 다.

distributionUrl=https\://services.gradle.org/distributions/gradle-5.4.1-all.zip
만약 코드 가 버 전 컨트롤 러 에 있다 면,단독 지점 에서 이동 하 는 것 을 권장 합 니 다.
2.2 이전 실행
gradle.properties 파일 에 다음 항목 을 추가 합 니 다.

# Android          AndroidX       。
android.useAndroidX=true
# Android                    ,            AndroidX,       。
android.enableJetifier=true

AS 3.2 또는 더 높 은 버 전이 라면 원 키 이전 을 제공 합 니 다.메뉴 Refactor-> Migrate to AndroidX 을 선택 하면 현재 프로젝트 를 백업 하 는 것 을 알려 줍 니 다.Backup project as Zip file 을 선택 하면 자동 으로 백업 해 줄 수 있 습 니 다.

왼쪽 아래 힌트,클릭 Do Refactor3 이전 결과
원 키 로 이동 한 후,gradle 파일 에서 implementation 의 모든 support 라 이브 러 리 가 androidx 로 바 뀌 었 습 니 다.예 를 들 어

implementation 'com.android.support:appcompat-v7:28.0.0' 
  
implementation 'androidx.appcompat:appcompat:1.0.0'
상응하는 유형 명도 변 할 수 있다

import android.support.v7.app.AppCompatActivity;
  
import androidx.appcompat.app.AppCompatActivity;
따라서 위의 두 가지 결 과 를 먼저 볼 수 있 고 교체 에 성공 하지 않 으 면 수 동 으로 교체 할 수 있 으 며 이에 따라 공식 적 으로 제공 하 는 CSV 형식의 라 이브 러 리 맵 파일 의존클래스 맵 파일 을 조회 할 수 있다.rebuild project,컴 파일 이 통과 되면 축하합니다.저 는 어쨌든 실 패 했 습 니 다.
4 이동 오류
4.1 수 동 으로 수정 할 수 있 는 오류
어떤 파일 에 서 는 바 꿀 수 없 으 며,상기 두 개의 맵 에 따라 수 동 으로 바 꿔 야 합 니 다.
gradle 에서 implementation 을 통 해 도 입 된 라 이브 러 리 를 검사 합 니 다.예 를 들 어 implementation androidx.recyclerview:recyclerview:1.0.0' 은 원 키 로 이동 한 후에 도 입 된 종 류 는 import androidx.appcompat.widget.RecyclerView; 이 고 import androidx.recyclerview.widget.RecyclerView; 으로 교체 해 야 합 니 다.전체 적 으로 support 자 를 교체 해 야 할 것 같 습 니 다. 그리고 GridLayoutManager,FragmentTransaction 이 있 기 때 문 입 니 다.기다리다
4.2 제3자 라 이브 러 리 충돌support 창고 와 androidx 은 공존 할 수 없습니다.
  • 상황 1:이전 이 끝 난 후에 이론 적 으로 자신의 프로젝트 는 androidx 을 사 용 했 지만 오래된 프로젝트 에서 제3자 의 라 이브 러 리 를 많이 도입 했다.이런 오래된 버 전의 라 이브 러 리 는 support 을 사용 했다.
  • 상황 2:이러한 상황 은 이전 하지 않 은 프로젝트 에서 발생 하 는데 최신 판 제3자 라 이브 러 리 를 가 져 왔 기 때문에 이 라 이브 러 리 는 androidx 을 사 용 했 기 때문에 잘못 보고 할 수 있 습 니 다.
  • 해결 방법:
  • 상황 1.제3자 라 이브 러 리 를 최신 버 전 으로 업데이트 하거나 androidx 버 전 을 사용 합 니 다.이 라 이브 러 리 가 androidx 버 전 을 사용 하지 않 았 다 면 다른 방안 을 찾 아 대체 해 야 합 니 다(정확 한 해결 방안 인지 모 르 겠 습 니 다).
  • 상황 2:구 버 전의 제3자 라 이브 러 리 를 사용 합 니 다.
  • 한 마디 로 다 build,이상 정보 에 따라 문 제 를 해결 하 는 것 이다.
    5 참고 자료
    Android X 미리 보기
    정부 이전 강좌
    구 글 개발 자.-이제 AndroidX 로 옮 길 때 가 됐어 요.
    안 드 로 이 드 안 드 로 이 드 X 이전 에 관 한 이 글 은 여기까지 소개 되 었 습 니 다.더 많은 안 드 로 이 드 X 이전 내용 은 저희 의 이전 글 을 검색 하거나 아래 의 관련 글 을 계속 찾 아 보 세 요.앞으로 도 많은 응원 부 탁 드 리 겠 습 니 다!

    좋은 웹페이지 즐겨찾기